[ZLG-ARM] 请教周公:LPC2210的UART1查询方式发送的数据都变成了FF

[复制链接]
2348|2
 楼主| wen2204 发表于 2007-9-20 14:01 | 显示全部楼层 |阅读模式
这个程序是LPC2210的UART1查询方式发送数据hello&nbsp;word,可是用EASYARM监视到发送的数据全部是FF(为16进制显示).我前前后后的检查,也没发觉不对的地方啊。这个程序有问题吗?请教一下,谢谢<br /><br />#include&nbsp;&nbsp;&quot;config.h&quot;<br /><br />/********************************************************************<br />*&nbsp;名称:DelayNS()<br />*&nbsp;功能:长软件延时<br />*&nbsp;入口参数:dly&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;延时参数,值越大,延时越久<br />*&nbsp;出口参数:无<br />******************************************************************/<br />void&nbsp;&nbsp;DelayNS(uint32&nbsp;&nbsp;dly)<br />{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;uint32&nbsp;&nbsp;i;<br /><br />&nbsp;&nbsp;&nbsp;for(;&nbsp;dly&gt0;&nbsp;dly--)&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;&nbsp;i&lt5000;&nbsp;i++);<br />}<br /><br />#define&nbsp;&nbsp;UART_BPS&nbsp;&nbsp;&nbsp;&nbsp;115200&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;定义通讯波特率&nbsp;*/<br /><br />/****************************************************************<br />*&nbsp;名称:UART1_Ini()<br />*&nbsp;功能:初始化串口0。设置为8位数据位,1位停止位,无奇偶校验,波特率为115200<br />*&nbsp;入口参数:无<br />*&nbsp;出口参数:无<br />*******************************************************************/<br />void&nbsp;&nbsp;UART1_Ini(void)<br />{&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;uint16&nbsp;Fdiv;<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;U1LCR&nbsp;=&nbsp;0x80;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;允许访问分频因子寄存器&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;Fdiv&nbsp;=&nbsp;(Fpclk&nbsp;/&nbsp;16)&nbsp;/&nbsp;UART_BPS;&nbsp;&nbsp;/*&nbsp;设置波特率&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;U1DLM&nbsp;=&nbsp;Fdiv&nbsp;/&nbsp;256;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;U1DLL&nbsp;=&nbsp;Fdiv&nbsp;%&nbsp;256;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;U1LCR&nbsp;=&nbsp;0x03;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;设置为8,1,&nbsp;*/<br />}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />/****************************************************************<br />*&nbsp;名称:UART0_SendByte()<br />*&nbsp;功能:向串口发送字节数据,并等待发送完毕。<br />*&nbsp;入口参数:data&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;要发送的数据<br />*&nbsp;出口参数:无<br />*****************************************************************/<br />void&nbsp;&nbsp;UART1_SendByte(void)<br />{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;U1THR&nbsp;=&nbsp;data;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;发送数据<br />&nbsp;&nbsp;&nbsp;while(&nbsp;(U1LSR&0x40)==0&nbsp;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;等待数据发送完毕<br />}<br /><br />/*****************************************************************<br />*&nbsp;名称:UART1_SendStr()<br />*&nbsp;功能:向串口发送一字符串<br />*&nbsp;入口参数:srt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;要发送的字符串的指针<br />*&nbsp;出口参数:无<br />*******************************************************************/<br />void&nbsp;&nbsp;UART1_SendStr(uint8&nbsp;const&nbsp;*str)<br />{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;while(1)<br />&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(&nbsp;*str&nbsp;==&nbsp;'\0'&nbsp;)&nbsp;break;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UART1_SendByte(*str++);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;发送数据<br />&nbsp;&nbsp;&nbsp;}<br />}<br />&nbsp;<br />uint8&nbsp;const&nbsp;&nbsp;SEND_STR[]&nbsp;&nbsp;=&nbsp;&quot;Hello&nbsp;World!\n&quot;;<br />/********************************************************************<br />*&nbsp;名称:main()<br />*&nbsp;功能:向串口UART0发送字符串&quot;Hello&nbsp;World!&quot;<br />*******************************************************************/<br />int&nbsp;&nbsp;main(void)<br />{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;PINSEL0&nbsp;=&nbsp;(PINSEL0&nbsp;&&nbsp;0xfff0ffff)&nbsp;|&nbsp;0x50000;&nbsp;/*选择管脚为UART1*/<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;UART1_Ini();<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;while(1)<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;UART1_SendStr(SEND_STR);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DelayNS(10);<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;return(0);<br />}<br />
zlgARM 发表于 2007-9-21 09:48 | 显示全部楼层

re

to&nbsp;wen2204&nbsp;:<br />你的代码有误,请认真检查!<br />U1LCR&nbsp;=&nbsp;0x80;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;允许访问分频因子寄存器&nbsp;*/<br />应改成<br />U1LCR&nbsp;=&nbsp;0x83;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;允许访问分频因子寄存器&nbsp;*/<br />0x83串口字符长度8,PC数据位格式也应设成8;<br />0x80字符长度是5!<br /><br />void&nbsp;&nbsp;UART1_SendByte(void)<br />{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;U1THR&nbsp;=&nbsp;data;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;发送数据<br />&nbsp;&nbsp;&nbsp;while(&nbsp;(U1LSR&0x40)==0&nbsp;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;等待数据发送完毕<br />}<br />将其改成<br />void&nbsp;&nbsp;UART1_SendByte(uint8&nbsp;data)<br />{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;U1THR&nbsp;=&nbsp;data;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;发送数据<br />&nbsp;&nbsp;&nbsp;while(&nbsp;(U1LSR&0x40)==0&nbsp;);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;等待数据发送完毕<br />}<br />PC机接收一切正常。
 楼主| wen2204 发表于 2007-9-21 13:49 | 显示全部楼层

请教周公:LPC2210的UART1查询方式发送的数据都变成了FF

谢谢了。我把代码改了,接收到的数据还是FF,为乱码。<br />同时又把另外一个以前买的板子拿来做了对比实验,接收正常。<br />应该是板子的UART1接口有问题,谢谢了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

54

帖子

1

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