bus off handle 轮询模式,处理慢了后会出现bus off 状态下有报文外发的情况
-
bus off handle选择轮询模式在5ms 任务里调用,总线上连续干扰32帧产生bus off 后 发现停止外发3ms 后又外发了一包数据。正常理解产生bus off后应该在执行bus off handle前一直发送,或者产生bus off 后停止发送。这个3ms 后发送一帧是什么逻辑导致的?
备注:bus off handle 改成中断模式后解决这个3ms 后会发一包的问题
-
在调用函数
Can_Lld_BusoffHandle
的时候,会调用函数Can_Lld_StopChn
这个函数中会将 Ram 中的消息 Abort 掉,这里的 Abort 可能会导致这样的现象。可以尝试将源码中的Can_Lld_AbortPendingMsg
函数调用注释掉,看看是不是这个函数导致的。另外,需要提供一下MCAL的版本
-
测试发现,不去主动处理bus off 的话,3ms后就会自恢复,开始继续外发。这个自恢复的功能是否能自主开关
-
MCAL 版本是2_2_0
-
这个位是控制是否可以自恢复的。
快速上手云途开发生态
发帖前请查看
帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...