云途HA MCU重启后无法接收到CAN报文?
GaoSheng Lv4

在客户端发现在使用CAN的邮箱接收时,当使用CAN上位机一直发送数据时,复位MCU,此时复位后的MCU无法收到CAN上位机一直发送的报文ID

:CAN1 21邮箱,滤波设置后只能接收0x39C, CAN上位机一直持续发送ID为0x39C的报文,此时MCU执行软复位或硬复位,复位后上位机发送的ID为0x39C的报文就无法触发中断,MCU就接收不到了。但MCU可以收到其他未在复位时刻发送的报文

开始是怀疑是CAN的IMASK(邮箱接收使能)位被意外清除。但仿真发现,在复位时发送的报文的邮箱IMASK依旧是被使能的状态(0xFFFF FFFF)。
图片1

但是IFLAG1位(测试的邮箱6)被一直置1.且无法手动清除
图片2

查看寄存请发现实际上数据已经有接收到邮箱中(CAN1_RAM26\CAN1_RAM27)但是没有触发接收中断
图片3

在胡工和论坛的帮助下,发现FlexCAN初始化对顺序有一定要求,关键点是必须要先全部的掩码。之后再配置全部的邮箱
正确示范:
图片4
错误示范:
图片5

图片6
按照上述的流程配置CAN初始化问题解决。那么会这样呢?
后面在ME的应用审查清单里面找到一个答案:
图片7

本站由 提供部署服务