uart rs232 串口问题

来源:百度知道 编辑:UC知道 时间:2024/06/03 14:07:15
我用C8051F340单片机向串口发送送据 从0发到10 为什么到接收上显示会是
00 81 82 83 84 05 06 87 88 89 8A
我再发送一次 显示是
80 81 82 83 04 05 86 87 88 89 0A
在发送数据最高位的有1 和0 的变化 照理来说应该只能是0的
遇到这样问题的人可以告我一下原因吗
应该怎么解决
8位UART

我原来遇到过这个问题,你用的可能是内部振荡器,F340的内部时钟频率有2%的误差,所以你可以调整一下波特率定时器的初始值

假定你计算出来的定时器初始值应该是TH0=0X3A,可以试着修改为0X3B,0X3C,0X39,0X38 试试看(波特率不能太高,否则无法修正)

或者换外部晶体 11.0592M 等 , 这样就不会有误差

另外有可能是上位机接收软件的问题 ,我原来用过端口专家(PortExpert),有时会出现接收数据错误,可能需要重新启动几次端口专家(PortExpert) 才正确