C8051F310单片机进行串口通信,我在波特率9600下正常,但是在115200下传输有误码?请求高手指点

C8051F310单片机进行串口通信,我在波特率9600下正常,但是在115200下传输有误码?用的是内部晶振,误差也在允许范围内,为什么就是不能正常传输

1、物理层的电平转换方面出了问题。所以第一步可以用示波器来查查。
2、如果是单片机和单片机通信,相同配置,则可能串口服务程序全双工处理不当造成。
3、如果是单片机和PC通信,串口中断服务程序全双工处理不当造成。还有可能115200配置不正确或速率差较大,可考虑用1+8+1+1,多一个停止位或者增加空闲位时间来缓解。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-03-26
很多时候,设置的 参数 得到的 波特率 存在误差
从而使得2 端 波特率不一致,传输中 就有 误码!

可能 还是 误差 问题
第2个回答  2011-03-26
一传输速率越大误码概率越高,
二速率不匹配导致误码,
三时钟不稳定导致误码,
四周围有干扰导致误码,追问

有没有什么解决办法

第3个回答  2011-03-26
建议不要用超过9600较高的波特率,误差会增大,51系列的更不用说了。
第4个回答  2011-03-28
内部晶振很不准,如果你要用串口通讯,就必须用外部晶振。
我也吃过亏
第5个回答  2012-08-26
有程序?我不会通信

C8051F310单片机进行串口通信,我在波特率9600下正常,但是在115200下传输...
1、物理层的电平转换方面出了问题。所以第一步可以用示波器来查查。2、如果是单片机和单片机通信,相同配置,则可能串口服务程序全双工处理不当造成。3、如果是单片机和PC通信,串口中断服务程序全双工处理不当造成。还有可能115200配置不正确或速率差较大,可考虑用1+8+1+1,多一个停止位或者增加空闲位...

C8051F310单片机进行串口通信,我在波特率9600下正常,但是在115200下传输...
单片机内部时钟误差较大,建议使用外部晶振,且选择可以配置成你所需波特率而误码较率较小的晶振如11.0592MHz,22.1184MHz等

相似回答