我试图通过使用libohiboard作为HAL库将CANopenNode应用到STM32L476设备中。在网络中,我有:(i)我的主板,(ii)一个商业节点。在启动时,节点发送HB消息和同步消息。当我的董事会使用CO_NMT_sendCommand(CO->NMT,CO_NMT_ENTER_OPERATIONAL, 0x0A);
时,主程序开始连续地发送相同的消息,而不停止!
使用逻辑分析器,我可以看到以下内容:
其中通道0是微控制器的TX引脚,通道1是RX引脚。
我不明白为什么消息立即返回到RX引脚!我检查了微控制器的配置,环回模式关闭了。
谢谢
发布于 2022-07-14 12:37:30
看起来像正常的CAN操作-所有消息都会在发送时立即回显,否则总线仲裁就无法工作。唯一的区别是在rx行上设置的ACK位,而不是tx上的ACK位。此位由总线上的另一个CAN节点填充。
您的节点一直发送相同消息的原因似乎与此无关。
发布于 2022-08-20 04:48:58
我不知道它在控制器上是如何工作的,但通常只有当从节点不返回任何心跳或心跳值与预期的模式不同时(例如,预操作或操作),您才需要注意发送NMT_start_command。
如果奴隶不返回任何东西,可能有多种原因:
查询从节点。
如果不清楚或没有帮助,请告诉我
https://stackoverflow.com/questions/72979085
复制相似问题