MMT 在工具菜单中不显示
printf运行报错
将 IAR 的 __no_init 指令移植到 GCC 编译器
关于H750VB的SDMMC开启DMA读写SD卡
F407的SDIO的硬件分流问题
与TF 卡 SDIO 通信报错:HAL_SD_ERROR_REQUEST_NOT_APPLICABLE
变量在循环体外出现未定义行为
强制类型转换不起作用
STM32 VSCode 扩展插件问题
在 CubeIDE 中为不同 RAM 区域定义带初始值的全局变量
微信公众号
手机版
你可以进一步查看下代码,看看发生BUS OFF事件后怎么处理的,是否软件上做了恢复操作 还是硬件有做自动恢复。
你再确认下。
下面是手册的描述。这个自动恢复是自动重新初始化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进入离线状态后,就自动开启恢复过程。