原创 LPC2148自动波特率的使用

2008-6-29 15:56 3110 11 12 分类: MCU/ 嵌入式
LPC2148自动波特率的使用



今天,发现LPC2148还有自动设置波特率的功能,但开始的时候没有能成功应用。主要原因忘记了设置数据长度,停止位数,奇偶校验位。实际应用代码如何下。


 PINSEL0 = (PINSEL0 & 0xfffffff0) | 0x00000005;//设置p0.1,p0.2为UART的对应管脚
  U0ACR = 0x03;//开启自动波特率的功能
  while((U0ACR&0x01)!=0);//等待设置波特率结束
  U0LCR = 0x83;//设定数据长度位8,停止位位1位,无奇偶校验


以下可以,通过串口向上位机发送数据。


在使用中发现,LPC2148 用户手册中发现以下问题。文档中描述波特率计算公式:


UART baud= Pclk / (16 * (16* UDLM + UDLL) )


但个人觉的应该是下面的:


UART baud= Pclk / (16 * (256* UDLM + UDLL))


在实际的应用中使用如下代码时间,设定波特率。


PINSEL0 = (PINSEL0&0xFFFFFFF0)|0x00000005;
 U0LCR = 0x80;                      
 bak = (Fpclk>>4)/baud;
 U0DLM = bak>>8;
 U0DLL = bak&0xff;


也就印证上面的公式。

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户186581 2008-10-12 03:01

大侠,图片怎么看不见啊?最近我在学习这个,能发一份完整的到我的邮箱么?nylql@163.com 不胜感激!谢谢!

用户1716532 2008-6-29 19:07

不错~~~
相关推荐阅读
用户412065 2008-10-10 17:53
pwm实现24位adc
http://www.tudou.com/v/bhNf1TSAVbw  pwm实现24位adc...
用户412065 2008-06-29 15:54
C语言可变参数函数使用总结
C语言可变参数函数使用总结 0推荐//ADS1.2下编译使用void TestFun(char* fmt,...){    int ch;    char selch = 0;    va_list ...
用户412065 2008-06-20 14:37
二进制的时钟 附源代码
估计没学过二进制的人要看懂时间有点难啊based 89c51  proteus单片机仿真...
EE直播间
更多
我要评论
1
11
关闭 站长推荐上一条 /3 下一条