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.
1、 设置接收在开始触发中断DMA_setInterruptMode(DMA_CH6_BASE, DMA_INT_AT_BEGINNING);(目的做计时Timeout)
当检测到不接收新数据时开始处理数据,由于接收的数据会比 TRANSFER小, DMA_configTransfer(DMA_CH6_BASE, TRANSFER, -0, 1);
目前测试重新 DMA_startChannel(DMA_CH6_BASE);开始接收数据无法触发新中断,,实际测试很既需要清LIN也需要清DMA,请问具体需要清除那些寄存器,该怎么做
您能否确认一下您的LIN FIFO (multibuffer)的中断等级(interrupt level)是多少?当DMA的burst为1时,它应该为1。我们的工程师认为问题出在这里。
中断等级这个在哪个寄存器查看,burst为1,这个指1个word,我所说的奇偶是指byte,就是接收15个byte->7.5个word时候会出问题LinaRegs.SCIFLR.bit.WAKEUP就是置1
请参阅 TRM LIN 章节的“Receive DMA Requests”部分:
如您所见,LENGTH 决定了何时触发 DMA 请求。
另请注意上面提到的多处理器模式设置和 DMA。
如果您遇到问题,我们建议您禁用多缓冲模式。
另请注意下面Receive Interrupt部分的底部文本(绿色框):