|
关于CAN总线有个问题想请教下大家
就是我现在用的是一个主机来控制3个从机。单片机程序流程是主机发送一个广播消息,3个从机接收到消息后执行相关功能,执行完后 3个从机分别给主机发送一个消息证明已经执行完了,然后主机接收完这3个消息后再发一个广播消息,让3个从机继续执行,就这样一直循环。现在的问题是 我把接收消息的程序放到了定时器中断里,10ms读取一次,发现有时候从机就停止执行功能了,我用串口打印的方式查找错误发现是主机这边有时候会接收不到个别从机的数据,但是从机是发送正常的。所以应该是3个从机发送的数据冲突了,导致主机漏掉了数据。我目前的解决办法是让主机接收到哪个从机的数据后就给那个从机发送消息说不用发送了。现实情况是之前的从机偶尔停止情况改善很多,但是还是有,我实在没有办法了,想来求助下大家
|
-
1.jpg
(92.65 KB, 下载次数: 79)
这是主机
-
2.jpg
(72.92 KB, 下载次数: 75)
这是主机
-
3.jpg
(110.88 KB, 下载次数: 71)
这是主机
|