This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DSP TMS28335 eCAN 如何不停接收帧?

我想让 mailBox0作为接收邮箱,其他邮箱禁用,希望能够不停接收新消息,但实际结果是只能接收第一条消息,以后每次接收的消息都无法更新,内容仍为第一条消息。经过调试和文档考察发现,当邮箱使能的时候是无法写入邮箱内容的。我想也就只能每次接收消息后禁用邮箱,清空邮箱,然后再启用邮箱(_recv_init),这样确实能够多次收帧,但是在禁用过程中如果有新消息过来,帧会丢失。请问有什么解决办法?

for(;;)
{

ECanaRegs.CANRMP.all = 0x00000000; // Set TRS for all transmit mailboxes
while(ECanaRegs.CANRMP.all != 0x00000001 ) {} // Wait for all TAn bits to be set..
ECanaRegs.CANRMP.all = 0x00000000; // Clear all TAn
ECanaRegs.CANRML.all = 0x00000000;
MessageReceivedCount++;

mailbox_read(0); // This func reads the indicated mailbox data
_recv_init();

}