做串口通信时,为什么要把晶振频率设为11.0592,为什么要把波特率设为9600,本人初学,请指教,谢谢!

我做的是一个双机串行通信,在网上找了些相关设计,晶振频率好多都是11.0592,波特率是9600。请问,做串口通信时,为什么要把晶振频率设为11.0592,为什么要把波特率设为9600,还有,波特率11.0592和12MHz有什么区别,各有什么特点。请各位大虾指教,谢谢!

先说波特率。波特率从300到115200都可以,甚至更高或更低。一般规范的波特率都是3的倍数,比如9600、19200、38400;但是并不是一定的,波特率也可以是10000或者10001、10002,只要你的设备能产生符合这个要求的频率,尤其是自己用时,波特率都是很随意的,没有限制。只是多数时候为了和电脑配合,波特率才规范为固定的几个值,且为了传输稳定,用9600。不过我比较喜欢用19200和38400,传的快。

用11.0592晶振的原因是51单片机的定时器导致的。用51单片机的定时器做波特率发生器时,如果用11.0592Mhz的晶振,根据公式算下来需要定时器设置的值都是整数;如果用12Mhz晶振,则波特率都是有偏差的,比如9600,用定时器取0XFD,实际波特率10000,一般波特率偏差在4%左右都是可以的,所以也还能用。
温馨提示:答案为网友推荐,仅供参考
相似回答