<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[CAN FIFO仅能处理1帧的问题]]></title><description><![CDATA[<p dir="auto">在使用 Legacy Rx FIFO 接收 CAN 消息时，我们分析了驱动中的中断处理代码，发现以下流程：中断服务程序中调用 FLEXCAN_IRQHandlerRxFIFO。</p>
<p dir="auto">该函数读取 FIFO 中的一帧数据后，调用 FLEXCAN_CompleteRxMessageFifoData。<br />
在 FLEXCAN_CompleteRxMessageFifoData 中，当 transferType == FLEXCAN_RXFIFO_USING_INTERRUPTS 时，会执行：<br />
(void)FLEXCAN_SetMsgBuffIntCmd(base, FEATURE_CAN_RXFIFO_FRAME_AVAILABLE, false);<br />
(void)FLEXCAN_SetMsgBuffIntCmd(base, FEATURE_CAN_RXFIFO_WARNING, false);<br />
(void)FLEXCAN_SetMsgBuffIntCmd(base, FEATURE_CAN_RXFIFO_OVERFLOW, false);<br />
即禁用了所有 FIFO 相关的中断（包括帧可用中断 BUF5I）。</p>
<p dir="auto">疑问：<br />
如果 FIFO 中同时收到多帧（例如连续 4 帧），处理完第一帧后中断被禁用，那么剩余的帧是否还能触发中断并被读取？还是会造成丢帧？<br />
按当前代码逻辑，是否意味着 Legacy Rx FIFO 只能支持单帧接收，而不能连续接收多帧？<br />
如果需要连续接收多帧，应该采用什么配置或修改？</p>
]]></description><link>https://forum.ytmicro.com/topic/1903/can-fifo仅能处理1帧的问题</link><generator>RSS for Node</generator><lastBuildDate>Tue, 21 Apr 2026 13:39:22 GMT</lastBuildDate><atom:link href="https://forum.ytmicro.com/topic/1903.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 21 Apr 2026 09:53:23 GMT</pubDate><ttl>60</ttl></channel></rss>