LPC2131串口使用问题

[复制链接]
2731|3
 楼主| rockzone 发表于 2007-9-11 13:22 | 显示全部楼层 |阅读模式
这是一段简单的串口通信程序<br /><br />#include&nbsp;&quot;config.h&quot;<br /><br />void&nbsp;DelayNS(uint32&nbsp;dly)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;uint32&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;for(;&nbsp;dly&gt0;&nbsp;dly--)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;&nbsp;i&lt50000;i++);<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />}<br /><br />#define&nbsp;UART_BPS&nbsp;115200<br /><br />void&nbsp;UART0_Init(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;uint16&nbsp;Fdiv;<br />&nbsp;&nbsp;&nbsp;&nbsp;U0LCR=0x83;<br />&nbsp;&nbsp;&nbsp;&nbsp;Fdiv=(Fpclk/16)/UART_BPS;<br />&nbsp;&nbsp;&nbsp;&nbsp;U0DLM=Fdiv/256;<br />&nbsp;&nbsp;&nbsp;&nbsp;U0DLL=Fdiv%256;<br />&nbsp;&nbsp;&nbsp;&nbsp;U0LCR=0x03;<br />}<br /><br />uint8&nbsp;UART0_GetByte(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;uint8&nbsp;rcv_dat;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;while((U0LSR&nbsp;&&nbsp;0x01)&nbsp;==&nbsp;0);<br />&nbsp;&nbsp;&nbsp;&nbsp;rcv_dat&nbsp;=&nbsp;U0RBR;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;return(rcv_dat);<br />}<br /><br />void&nbsp;UART0_GetStr(uint8&nbsp;*s,&nbsp;uint32&nbsp;n)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;for(&nbsp;;&nbsp;n&gt0;&nbsp;n--)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*s++&nbsp;=&nbsp;UART0_GetByte();<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br />void&nbsp;UART0_SendByte(uint8&nbsp;dat)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;U0THR=dat;<br />&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;((U0LSR&nbsp;&&nbsp;0x40)&nbsp;==&nbsp;0);<br />}<br /><br />void&nbsp;UART0_SendStr(uint8&nbsp;const&nbsp;*str)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;while(1)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(*str&nbsp;==&nbsp;'\0')&nbsp;break;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UART0_SendByte(*str++);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><br />int&nbsp;main&nbsp;(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;uint8&nbsp;snd[32];<br />&nbsp;&nbsp;&nbsp;&nbsp;PINSEL0&nbsp;=&nbsp;0x00000005;<br />&nbsp;&nbsp;&nbsp;&nbsp;UART0_Init();<br />&nbsp;&nbsp;&nbsp;&nbsp;UART0_GetStr(snd,18);<br />&nbsp;&nbsp;&nbsp;&nbsp;DelayNS(10);<br />&nbsp;&nbsp;&nbsp;&nbsp;UART0_SendStr(snd);<br />&nbsp;&nbsp;&nbsp;&nbsp;DelayNS(10);<br />&nbsp;&nbsp;&nbsp;&nbsp;while(1);<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;<br />}<br /><br /><br />用串口调试软件发送18个字符,然后回显<br /><br />我用的是com4,用串口调试软件选择这个口时,总是提示这个“端口被占用或者没有发现此串口”<br /><br />我用的是周立功的开发板<br /><br /><br />请高手给我指点
gql1123 发表于 2007-9-11 13:34 | 显示全部楼层

试试用其他串口

  
 楼主| rockzone 发表于 2007-9-11 13:40 | 显示全部楼层

我电脑上没串口,用的串口卡,com3和com4,都一个毛病啊
 楼主| rockzone 发表于 2007-9-11 13:47 | 显示全部楼层

!!

不好意思放了个烟雾弹,串口好使,但是必须得用电脑上自带的串口
您需要登录后才可以回帖 登录 | 注册

本版积分规则

69

主题

812

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部