需求

在使用串口调试助手调试读写程序时,发现在开启定时 10ms 发送的情况下,接收到的数据有时候会不对。

解决

原因

经过反复调试,最终确定问题是 RS485 导致的问题。因为下面几个原因叠加导致:

  • RS485 是半双工设备,同时只能收或者发。
  • 串口调试助手,定时发送没有办法刚好完全避开程序的发送

所以,就出现了,当程序在发送时,串口调试助手也在发送,等到程序接收的时候,数据就不完整,或者有问题。

验证

验证也很简单:

  • 程序只收不发,然后查看所有受到的数据,没有错误。
  • 程序发送的间隔拉的很长,观察在发送间隔中的接收数据,也是没有错误的。

参考