C51单片机 串口收发 数据不一致(个人问题记录)

遇到的问题:
C51单片机 串口收发 数据不一致(个人问题记录)_第1张图片
这是简单的将接收到的字符发送回去的程序,然而,发出去的01(十六进制,实际是0x01),收到的却是81。如果发出去02,收到82。发出去80,收到80。发出去9A,收到9A。也就是小于0x80的全部偏差了80,大于0x80的值不变。这个问题我摸索了一天,淦!

解决办法:
换了一个8051单片机和最小系统板,就能用了。(学校的普中单片机集成板不靠谱,淦)
C51单片机 串口收发 数据不一致(个人问题记录)_第2张图片

原因猜测:
之前的晶振是11.97MHZ,之后的是11.12MHZ,推测这个晶振不要12MHZ,而是接近11MHZ的话实际生成的波特率偏差会在允许范围内。(推测12MHZ的9600波特率偏差大于7%,具体的可以下载波特率计算器算出)

你可能感兴趣的:(uart,单片机)