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

STM32F373 CAN通讯问题CAN_FLAG_LEC

[复制链接]
xassassin 提问时间:2020-4-14 12:47 /
运行一段时间就回有CAN_FLAG_LEC标记,然后CAN总线就回不稳定,回出现丢帧,但是不会挂死
那位大神能知道给解释一下,为什么会出现CAN_FLAG_LEC,非常感谢!
收藏 1 评论2 发布时间:2020-4-14 12:47

举报

2个回答
aiherong 回答时间:2020-4-16 00:32:29
楼上讲得很好,我补两句: 120欧电阻是并接在总线上,且是高速模式, 距离短; 而若串接(2.2K)则是低速模式,距离好像最大到10千米,电阻很重要!不能少而且尽量调试好,显隐性与CSMA/CD协议是否同理,脑子一时转不过来,但高速数据传输必然产生传导反射,靠电阻吸收以减少误码,另外,最好用双绞线(原因与共模抑制相关)

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

STM1024 回答时间:2020-4-15 10:01:04
CAN_FLAG_LEC:Last Error Code,意思就是上次错误号中断,你把错误号读出来看看是什么意思。
根据你的描述,出现丢帧但没有挂掉,总线应该是没有出现短路或者断路的问题,但是又有丢帧,建议从几个方面检查一下。
1. 终端电阻。众所周知,总线在两端各有一个120欧姆的终端电阻,你断电的情况下,测量一下电阻值,根据我以前在汽车上测试的经验,在电阻低于40欧或者超过70欧情况下(个人测试,不具有普遍意义,供参考),如果总线波特率越高,丢帧率也越高。
2.总线负载。CAN总线是一种竞争型的总线,会有一个仲裁机制,通过载波侦听的方式,一边发送一边接收,如果总线上的值和自己发送的值相同,则认为发送成功,如果不同,则认为发送失败,你看看总线上是不是有其他设备也在发送报文,如果是,可以先脱开试试。

评分

参与人数 1蝴蝶豆 +3 收起 理由
STMCU + 3

查看全部评分

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