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.

[参考译文] TM4C1294NCPDT:当 DMA 通道停止时、是否应触发 UART DMA RX 中断?

Guru**** 2524460 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/902602/tm4c1294ncpdt-should-uart-dma-rx-interrupt-be-triggered-when-dma-channel-is-stopped

器件型号:TM4C1294NCPDT

当在所有传输完成之前手动停止 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时触发中断。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Patrick:

    [报价用户="Patrick Emerick"]当在所有传输完成之前手动停止 DMA 通道(即 Xfer_size > 0)时,是否会触发相关的 DMA 中断?

    否 如果 μ µDMA 从 Rx FIFO 传输的数据完成、DMARXRIS 位被置位。 如果在完成之前关闭通道、则不会触发中断。

    您描述的行为是预期行为。