我有两台不同的PC,它们串行连接,运行不同的程序,都使用UART 16650。情况如下:
计算机a向b发送数据计算机b从计算机b接收过程数据,然后响应计算机a从B接收过程数据,然后响应b接收过程数据。
诸若此类。
问题在于,A在处理中太快,而B在处理中太慢,从而出现类似死锁情况,即在某些情况下,两台pcs都等待对方发送数据
我需要帮助,我如何才能同步PC,这样一台PC将不会开始读取数据,而另一台仍在阅读
发布于 2014-09-15 07:05:09
解决此问题的最简单方法是指定一台机器为主机器,另一台机器为从机器。
主设备:向从设备请求/轮询数据,将数据发送到从设备,要求其进行处理
从设备:接收数据,处理,并在轮询时将响应发送回主设备
将命令/查询从主设备添加到从设备也是有用的。通过这种方式,您可以检查从机是否为您提供了数据,并且避免了在没有数据时等待。
您假设死锁是机器速度差异的结果,但没有提供任何信息来证明这一点。一般来说,串行通信协议应该能够从这些情况中恢复。
https://stackoverflow.com/questions/25837407
复制相似问题