我有两台不同的PC,它们串行连接并运行不同的程序,都使用UART 16650情况是:
计算机a向b发送数据计算机b从a接收计算机b处理数据,然后响应计算机a从b接收A处理数据然后响应bB收到。。。
等等。
问题是,a处理速度太快,而b处理速度太慢,导致出现类似死锁的情况,即在某些情况下,两台电脑都在等待另一台电脑发送数据
我需要帮助我如何同步电脑,这样当另一台电脑仍在读取时,一台电脑就不会开始读取数据
解决这个问题的最简单方法是将一台机器指定为主机器,另一台指定为从机器。
主设备:请求/轮询从设备的数据,向从设备发送数据,要求其处理
从设备:接收数据,处理,并在轮询时将响应发送回主设备
将命令/查询从master添加到slave也很有用。通过这种方式,您可以检查从属服务器是否有数据供您使用,并避免在没有数据时等待。
您假设死锁是机器速度差异的结果,但没有提供任何信息来证明这一点。一般来说,串行通信协议应该能够从这些情况中恢复。