stm32 can可以接收数据,但却无法发送数据,怎么回事

如题所述

查错思路:

    用回环模式测试收发功能是否正常

    若正常,那就是另一台CAN节点有问题

    注意,两台对接的节点都必须在正常模式下,才能发送成功,若其中一台不是正常模式,那另一台正常模式的节点是无法发送成功的

    若不正常,那就是你的初始化程序有问题

    STM32的CAN调试思路,应该是在回环模式下先调通一台,能正常接收自己发送的数据后,再在正常模式下接至少2个节点测试(且两个节点都必须是正常模式)

    必须注意,CAN总线硬件有问题时可能初始化失败(比如CAN收发芯片坏了)

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-06-19
使用stm32can控制器自带的回环模式测试收发功能看是否正常
若正常,那就是另一个接收数据的对象接收驱动没写好
若不正常,那就说明至少此stm32can的发送驱动没写好
如果以上示例都完成后stm32仍然无法正常通信,那就是硬件的原因,可以先查看芯片电压等是否配置正常,是否损坏等。
ps:can通信距离近的情况下不建议接120欧姆终端电阻,否则可能出现通信过程中丢帧或通信失败情况
第2个回答  2017-02-09
我以前调的时候参考官方的程序就好了,没这么复杂的。
相似回答