51单片机串口通讯波特率问题

我开发板上面一个晶振是11.0592的,这个是单片机的晶振。
还有一个晶振是12M的,这个是USB2302的。
现在写通讯代码总是乱码,或者根本就对应不上。计算通讯TH数值的时候应该用哪个晶振计算啊?

第1个回答  2013-01-30
USB转串口上的晶振12MHz,对波特率的准确度有一定影响。但是,单片机通讯的波特率设置,还是得采用与单片机相连的11.0582MHz晶振进行计算。
11.0592MHz设置的的大部分波特率理论误差为零,但是,串口转USB会有为了减小误码率,可按照12MHz晶振波特率设置表中计算的理论误差,选择误差较小的波特率试试。一般来说,波特率较低的,误差也较小。追问

我用11.0592的好用了 初值没有设定好 但是什么时候根据12M的计算?

追答

设置多少波特率要参照12MHz晶振的误差情况,选择误差小的波特率,再按照11.0592MHz的参数进行设置。目的是为了使12MHz的USB串口转换器的误差较小。

第2个回答  推荐于2016-06-03
那个 12MHz的晶振是用来驱动 USB2302的,跟你的单片机没有一点关系,你把那个USB2302和12MHz晶振看做是一体的,看做是电脑上的串口就行了,与你的单片机没有关系.\
现在的电脑已经很少有串口了,尤其是笔记本,更是没有串口,所以通常我们会买USB转串口来做开发.
我们买的USB转串口,里面用的是PL2303作的转换,而PL2303需要一个12MHz的晶振,现在你明白了吗?那个USB2302和12MHZ晶振就相当于一个USB转串口,只不过是做到板子上了,不用你另外买,这是开发板厂家考虑到现在电脑没有串口,因此给你的电脑增加了个串口而已.

所以,那个12MHZ晶振与你的单片机没有丝毫的关系,你用11.0592就行了.本回答被提问者采纳
第3个回答  2013-01-30
肯定是单片机相连的晶振。

12M和单片机的波特率无关。
第4个回答  2013-01-30
既然是要跟单片机通讯,那当然是要用11.0592MHz的
在网上随便找个 “51波特率初值设定软件” 就能用了追问

那什么情况下用12M的计算?

追答

那块USB2302是完成单片机的串口转换成USB接口跟PC机通讯的,只要给它安装驱动就行了,也就是12MHz与要通讯的波特率可以视为无关

相似回答