原创 关于串口波特率误差问题

2013-11-5 14:46 7978 24 33 分类: 消费电子

通常情况下MCU都提供了多种不同的时钟源以及多种不同的时钟分频系数,以让用户应用系统能工作在多种时钟速率下,同样也是为了让MCU的各种外设能有一个适合的时钟工作,如定时器如果时钟设置的过高会造成定时时间短,其它通信外设如UART,SPI,I2C则会因高时钟速度加快通信速度。在这种多种时钟选择的情况下就可能对串口波特率设置造成过大的误差而引起串口通信错误。


今天就遇到这样的一个问题,就是让C8051F9x系列单片机工作在24.5MHz的主频下,串口波特率为115200时串口始终通信有误码,而baudrate=9600时则又正常。这就是串口波特率误差过大引起的。正常情况下串口波特率误差不应该超过+/-2%-3%,如超过这个值就会出现串口通信不正常问题。


C8051串口波特率公式计算如下:
UartBaudRate = T1_Overflow_Rate                
T1_Overflow_Rate = Timer1_clk / (256-TH1)


1.现主频为24.5MHz,12分频后作为Timer1时钟源,理想波特率为115200,则算得TH1=0xF8,经过将TH1代入上式中求得际UartBaudRate=127604,则误差率为(127604-115200)/115200=10.8%,远远超过了2%-3%的极限值。


2.主频为24.5MHz,12分频作Timer1时钟源,理想波特率为9600,则算得TH1=0x96,将TH1反代入上式求得实际UartBaudRate=9630,则误差率为(9630-9600)/9600=0.3%,远远小于2%-3%的范围。


这就是为什么将波特率设为115200后串口始终不能正常进行通信的原因了!!


所以说当我们想根据不同的时钟来设不同的波特率后在程序中一定要进行反代入一下将MCU自己将实际波特率求出来进行比较如果误差率超过2%-3%,则利用C和编译器中的报错机制将错误情况进行提示,免得出了问题后,自己查看所有程序,发现没什么问题呀!其它就是一个小问题隐藏起来了。

 

文章评论9条评论)

登录后参与讨论

huhaomcu_856934054 2013-11-13 19:15

“为什么TH1不取EE”什么意思??

用户1319202 2013-11-12 13:41

为什么TH1不取EE?

用户1709360 2013-11-7 09:03

你的定时器计数设为的不合适,修改一下,可以让误差率小于2%

huhaomcu_856934054 2013-11-6 13:38

因为我想让C8051的串口波特率工作在115200下,其它的时钟会造成波特率的误差较大,在24.5MHz下误差率是-0.32%。

用户1690077 2013-11-6 13:32

生活中的tips

用户1690077 2013-11-6 13:31

生活中的tips

用户1245506 2013-11-6 12:01

主频干嘛用24.5M,实际上选1.8432M的整倍数最好

用户1162168 2013-11-6 09:35

谢谢分享!很实用!

用户1602177 2013-11-5 14:48

感谢分享~~

用户590739 2013-1-4 17:28

大部分中国学生做不到,甚至认为打工没有必要,其实打过工的人才会真正珍惜生活。
相关推荐阅读
huhaomcu_856934054 2014-08-19 20:54
uCOS-Ⅱ
启动uCOS-Ⅱ的学习与移植!...
huhaomcu_856934054 2014-07-20 10:08
多通道电路原理图
简单说说关于Protel中提供的多通道原理绘制与PCB布局布线. Protel(不知99SE是否可以)有提供多通道电路原理图的设计,这项功能在有些方面还是很有用处的,比如说:当部分原理图在一张图...
huhaomcu_856934054 2014-04-07 09:10
IAR制作工程模板
我个人学习新的MCU过程一般会是如下过程,建立一个个的DEMO工程,每个DEMO工程学习一个外设,所以每个DEMO程序都很简单,但是在建立一个个DEMO程序的过程中,会发现开始的步骤基本上就是相同...
huhaomcu_856934054 2014-03-14 18:06
新公司与老公司的比较
在新公司上了几天班真心有点想念以前的老公司了! 下面来比较比较新公司与老公司吧: 1.业务量。新公司的项目更多,人员更多,涉及的面也较广,整体的技术水平要大大强于以前的老公司。以前老公司里...
huhaomcu_856934054 2014-02-24 15:01
辞职了!
辞职了,但愿柳暗花明又一村!!...
huhaomcu_856934054 2014-02-21 09:22
回来啦!
之前因为身体原因一直在家休息,直到今天才来武汉上班。但愿今年个人的工作能有所上升!...
我要评论
9
24
关闭 站长推荐上一条 /2 下一条