当在所有传输完成之前手动停止 DMA 通道(即 Xfer_size > 0)时、是否会触发相关的 DMA 中断? 我专门将其用于 UART RX 通道、但我也想更全面地了解。 我曾预料到会发生这种情况、但我的测试显示、在禁用通道后 DMA 中断不会被触发。
我尝试通过将 DMA 通道模式设置为停止来禁用- pu32_DMA_CONTROL_TABLE [UART2_DMA_PRI_CTL_OFFSET]和=((~UDMA_CHCTL_XFERMODE_M)| UDMA_CHCTL_XFERMODE_STOP);
我还尝试通过设置通道的 ENACLR 位来禁用- HWREG (UDMA_ENACLR)= 1 << UDMA_SEC_CHANNEL UART2RX_0;
这些代码行实际上禁用了通道、但它们都不会在 DMARX 标志置1时触发中断。