请选择 进入手机版 | 继续访问电脑版

你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32 CAN通讯收发异常

[复制链接]
猪小屁 提问时间:2024-4-16 09:11 / 未解决
[md]项目里有个CAN收发相关的板子,用的是STM32F103芯片。在与上位机的CAN交互过程中经常会出现通讯错误的情况,表现在上位机发送报文后没有收到回复。用CAN调试器接到该板子后给其发消息,调试器会显示总线数据错误,如下图中会亮红色:

![image.png](data/attachment/forum/202404/16/090839ohkyn99jkzuzphnf.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "image.png")

但是将板子接上烧录器在线调试,并在CAN接收中断中打上断点,此时再向板子发送CAN信息,程序会显示进入接收中断,继续运行后恢复正常,拔掉调试器后又能正常跑。百思不得其解,有哪位大神支支招。
image.png
收藏 评论8 发布时间:2024-4-16 09:11

举报

8个回答
知足- 回答时间:2024-4-16 09:45:08

看不到相关的代码,很难查找原因。

实际上我用cubeMX生成代码,在波特率和采样点匹配的情况下,从没见过通信错误的情况。

猪小屁 回答时间:2024-4-16 10:02:05

知足- 发表于 2024-4-16 09:45
看不到相关的代码,很难查找原因。</p>
<p>实际上我用cubeMX生成代码,在波特率和采样点匹配的情况下,从没见 ...

[md]b72c9eefbafc62a5292b3e86237cd0c.png

6ff73c3f462511952fc3f55562afb7e.png

c6e97e72e5014452df5ded2d53d78ab.png

7acff82acfa4af132038ac1a4cc7cef.png

这是CAN初始化的代码,您看哪里可能报错吗

6ff73c3f462511952fc3f55562afb7e.png
c6e97e72e5014452df5ded2d53d78ab.png
7acff82acfa4af132038ac1a4cc7cef.png
butterflyspring 回答时间:2024-4-16 10:13:11
手动复位一下你的板子,看看是否能正常。
猪小屁 回答时间:2024-4-16 13:48:55

butterflyspring 发表于 2024-4-16 10:13
手动复位一下你的板子,看看是否能正常。

板子没有设计复位按钮,但是断电重启没有用

知足- 回答时间:2024-4-16 16:48:12

上位机CAN采样点是多少,我看这里设置的是(1+5)/(1+5+6) = 50%,一般波特率500K以下推荐设置采样点87.5%。不知道是不是这个原因。

另外,模式配置我一般都设置这样,可以试试看:

image.png

猪小屁 回答时间:2024-4-17 09:39:52

知足- 发表于 2024-4-16 16:48
上位机CAN采样点是多少,我看这里设置的是(1+5)/(1+5+6) = 50%,一般波特率500K以下推荐设置采样点87.5 ...

[md]好的谢谢

xmshao 回答时间:2024-4-26 07:20:17
你检查下,看看两边CAN参数时序配置是否一致。再就是硬件方面的问题,比方线材,干扰啊这些。之前用过标准CAN,感觉CAN还是比较好用的,似乎都没遇到啥麻烦。
猪小屁 回答时间:2024-4-30 08:39:42

xmshao 发表于 2024-4-26 07:20
你检查下,看看两边CAN参数时序配置是否一致。再就是硬件方面的问题,比方线材,干扰啊这些。之前用过标准C ...

好的谢谢

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版