[ZLG-ARM] LPC2148的串口程序 高手帮我看看啊 急!

[复制链接]
2573|4
 楼主| meihuadipu 发表于 2007-3-25 15:40 | 显示全部楼层 |阅读模式
高手帮我看看&nbsp;LPC2148的串口程序&nbsp;&nbsp;-不知哪里错了,急!&nbsp;<br /><br />程序功能:用LPC2148发送一个16进制数,2148再把这个数回送PC机<br /><br />运行程序后,用串口软件发送,结果送回来的数据总是错的,代码如下(keil下的):<br /><br /><br />#include&nbsp;&ltLPC214x.H&gt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />void&nbsp;uartini(void)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//串口初始化<br />{<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;int&nbsp;Fdiv=0;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;U0LCR&nbsp;=&nbsp;0x83;&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;(&nbsp;3000000&nbsp;/&nbsp;16&nbsp;)&nbsp;/&nbsp;9600&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;//设定波特率,12M晶振,没用PLL<br />&nbsp;&nbsp;&nbsp;&nbsp;U0DLM&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;<br />&nbsp;&nbsp;&nbsp;&nbsp;U0DLL&nbsp;=&nbsp;Fdiv&nbsp;%&nbsp;256;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;U0LCR&nbsp;=&nbsp;0x03;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//DLAB&nbsp;=&nbsp;0<br />}<br /><br /><br />main()<br />{<br />&nbsp;&nbsp;unsigned&nbsp;char&nbsp;data=0x00;<br />&nbsp;&nbsp;PINSEL0&nbsp;=&nbsp;0x00000005;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//打开&nbsp;P0.0,P0.1的串口功能<br /><br />&nbsp;&nbsp;uartini();<br />&nbsp;&nbsp;while(1)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while((U0LSR&0x01)==0);&nbsp;//先等待接收PC机发来的数据<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data=U0RBR;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//取出数据<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;U0THR=&nbsp;data;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//把取到的数据再回发出去<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while((U0LSR&0x40)==0);<br />&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />}&nbsp;<br />&nbsp;<br />
TRUE_ARM 发表于 2007-3-25 18:13 | 显示全部楼层

程序看不出什么问题

跟编译器相关的东西如,启动代码,会不会有错?
 楼主| meihuadipu 发表于 2007-3-25 19:04 | 显示全部楼层

谢谢

谢谢,目前只能检查硬件了
 楼主| meihuadipu 发表于 2007-3-25 22:23 | 显示全部楼层

解决了

原来&nbsp;KEIL&nbsp;fo&nbsp;ram&nbsp;里面的启动代码是默认的PLL&nbsp;5倍频的,所以&nbsp;Fpclk应该为15M
hotpower 发表于 2007-3-26 00:26 | 显示全部楼层

要看具体设置了。

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

14

帖子

0

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