1. 问题
依据上篇【S32K144调试笔记】CANFIFO&DMA SDK 配置测试的配置,如果在MCU向外连续发送报文的过程中,用上位机连续发送几帧报文,则将反复进入CAN中断,且无法复位。
理论上,配置成DMA后,接收只进DMA的中断,本来发送就是进中断的,但进去后会清除中断标志位的。现在反复进,不能理解是什么原因。
2. 真因
当接收到上位机的报文后(只发一帧),DMA中断触发,可以看到,此时 IFLAG1 的bit11置位,因为配置的Mailbox11是发送,【正常】。

将断点打在CAN中断处理函数中,连续运行几次,发现,仍是IFLAG1 的bit11置位。【正常】。

现将CAN中断处理函数处的断点取消,但是不取消MDA的中断处理函数处的断点,再发送一帧:<
在使用S32K144微控制器进行CAN通信时,遇到一个问题:连续发送报文会导致反复进入CAN中断,无法复位。经过分析,发现在接收到上位机报文并触发DMA中断后,FIFO的中断Flag异常置位,导致无法清除。暂时通过改为中断型接收模式解决了问题,但可能是SDK的潜在bug。
订阅专栏 解锁全文
713





