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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了stm32 can可以接收数据,但却无法发送数据,怎么回事相关的知识,希望对你有一定的参考价值。

查错思路:

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

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

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

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

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

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

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

以上是关于stm32 can可以接收数据,但却无法发送数据,怎么回事的主要内容,如果未能解决你的问题,请参考以下文章

STM32单片机通过USART1接收到数据后,怎么把接收到的数据通过单片机的CAN口发送出去啊?

STM32CAN总线接口发送和接收数据

STM32------- CAN

STM32------- CAN

STM32上,怎样用can总线协议发送数据!谢谢

stm32f407 can不接slave不能发送数据吗