我正在尝试配置 FlexCAN,以便在 S32K344 评估板(Q172)上使用带中断的 RX FIFO
问题是,当我通过 ERFIER 寄存器激活中断时,FIFO 似乎不再被新消息填充。相反,当 ERFIER 寄存器为 0(中断禁用)时,FIFO 会定期填充并且水印标志也会正确设置。
我注意到存在临时激活中断的函数 FlexCAN_Ip_RxFifo,然后在接收结束时通过相应的函数 FlexCAN_CompleteRxMessageEnhancedFifoData 将其禁用。但在我看来,即使没有设置水印标志,这个函数也会读取 FIFO 中的消息;此外,有必要在轮询中调用此函数以不断获得新的读取。
我是否误解了司机的行为?