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

stm8s CAN进入BUS OFF状态后恢复的问题

[复制链接]
风里高 提问时间:2023-4-10 11:22 / 未解决

Can_h对地短路,BOF标志位置1,恢复线路原状后,没有打开自动恢复功能,但是BOF位自动清零,数据重新发送,这是为什么?

收藏 评论2 发布时间:2023-4-10 11:22

举报

2个回答
xmshao 回答时间:2023-4-10 11:38:06
你没有打开硬件自动恢复,软件可以做恢复的。BOFF是个只读标志位,它是CAN状态的体现,是1是0硬件控制的。


你可以进一步查看下代码,看看发生BUS OFF事件后怎么处理的,是否软件上做了恢复操作 还是硬件有做自动恢复。


你再确认下。
风里高 回答时间:2023-4-10 11:58:07

xmshao 发表于 2023-4-10 11:38
你没有打开硬件自动恢复,软件可以做恢复的。BOFF是个只读标志位,它是CAN状态的体现,是1是0硬件控制的。
...

下面是手册的描述。这个自动恢复是自动重新初始化CAN模块的意思吗?我原本认为BOF后是处在CAN停止的状态,要硬件或者软件重新初始化。目前我的程序没有做重新初始化的处理,只是会定时发送数据,如果这个CAN本身只是状态上的停止,那硬件将BOF清0后还是会继续发送。

离线恢复 当TEC的值大于255时,beCAN就进入离线状态,CAN_ESR寄存器的BOFF位被置’1’。在离线 状态下,beCAN不再接收和发送报文。 根据CAN_MCR寄存器的ABOM位的设置,beCAN可以自动或在软件的请求下,从离线状态恢 复(变为错误主动状态)。在这两种情况下,beCAN都必须等待一个CAN标准所描述的恢复过程 (CAN RX引脚上检测到128次11个连续的隐性位)。 如果ABOM位为’1’,beCAN进入离线状态后,就自动开启恢复过程。

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