STM32 CAN通讯收发异常
项目里有个CAN收发相关的板子,用的是STM32F103芯片。在与上位机的CAN交互过程中经常会出现通讯错误的情况,表现在上位机发送报文后没有收到回复。用CAN调试器接到该板子后给其发消息,调试器会显示总线数据错误,如下图中会亮红色:!(data/attachment/forum/202404/16/090839ohkyn99jkzuzphnf.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
但是将板子接上烧录器在线调试,并在CAN接收中断中打上断点,此时再向板子发送CAN信息,程序会显示进入接收中断,继续运行后恢复正常,拔掉调试器后又能正常跑。百思不得其解,有哪位大神支支招。 看不到相关的代码,很难查找原因。
实际上我用cubeMX生成代码,在波特率和采样点匹配的情况下,从没见过通信错误的情况。
知足- 发表于 2024-4-16 09:45
看不到相关的代码,很难查找原因。
实际上我用cubeMX生成代码,在波特率和采样点匹配的情况下,从没见 ...
!(data/attachment/forum/202404/16/100001hjws4h51u44mbmw1.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "b72c9eefbafc62a5292b3e86237cd0c.png")
!(data/attachment/forum/202404/16/100050p9tf3ex3ejueg3qd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "6ff73c3f462511952fc3f55562afb7e.png")
!(data/attachment/forum/202404/16/100106ellu88x84nx5xy7k.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "c6e97e72e5014452df5ded2d53d78ab.png")
!(data/attachment/forum/202404/16/100117izes0qm1wnslbdqt.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "7acff82acfa4af132038ac1a4cc7cef.png")
这是CAN初始化的代码,您看哪里可能报错吗
手动复位一下你的板子,看看是否能正常。
butterflyspring 发表于 2024-4-16 10:13
手动复位一下你的板子,看看是否能正常。
板子没有设计复位按钮,但是断电重启没有用
上位机CAN采样点是多少,我看这里设置的是(1+5)/(1+5+6) = 50%,一般波特率500K以下推荐设置采样点87.5%。不知道是不是这个原因。
另外,模式配置我一般都设置这样,可以试试看:
!(data/attachment/forum/202404/16/164715zy2u6uzjue2x1e0j.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")
知足- 发表于 2024-4-16 16:48
上位机CAN采样点是多少,我看这里设置的是(1+5)/(1+5+6) = 50%,一般波特率500K以下推荐设置采样点87.5 ...
好的谢谢
你检查下,看看两边CAN参数时序配置是否一致。再就是硬件方面的问题,比方线材,干扰啊这些。之前用过标准CAN,感觉CAN还是比较好用的,似乎都没遇到啥麻烦。 xmshao 发表于 2024-4-26 07:20
你检查下,看看两边CAN参数时序配置是否一致。再就是硬件方面的问题,比方线材,干扰啊这些。之前用过标准C ...
好的谢谢
页:
[1]