大家好、我需要帮助来设置 DMA 配置。
我有一个大小可变的 DMA UART RX。 例如、我可以得到10字节或284字节。 我不知道。
在这种情况下、我如何设置 DMA 配置和处理?
我无法读取 dmaRAMREG->WCP[通道]寄存器。 问题是什么? 它是可读寄存器。
谢谢
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.
大家好、我需要帮助来设置 DMA 配置。
我有一个大小可变的 DMA UART RX。 例如、我可以得到10字节或284字节。 我不知道。
在这种情况下、我如何设置 DMA 配置和处理?
我无法读取 dmaRAMREG->WCP[通道]寄存器。 问题是什么? 它是可读寄存器。
谢谢
您好 、Faruk Keser、
带有 DMA 的 UART 不能动态更改数据包大小。
因此、您必须在应用级别实施某些协议、例如发送器需要告知接收器它将要发送的数据包大小、并且接收器可以更改新数据包大小的 DMA 数据包设置。 通过这种方式、您可以使用带有 DMA 的 UART 接收可变大小的数据。
--
谢谢、
Jagadish。
您好 、Faruk Keser、
当我想读取 COUNT 时、如果通道处于活动状态、则 WCP 无效、PBACTC 有效。如果通道处于非活动状态 、则 PBACTC 无效、WCP 有效。 对吧?
这是正确的、是预期的行为、因为
WCP->CTCOUNT 位将提供 DMA 传输中剩余的帧和元素计数、因此这些数据将在通道停用后更新、一旦通道处于活动状态、这些位将无效、因为 DMA 将传输帧和元素将逐渐减少。 取消激活通道后、这些位将为您提供相应通道的剩余帧和元素。
dmaREG->PBACTC 位将为我们提供当前活动通道帧和传输的元素计数、这意味着从相应活动通道传输的帧和元素数量。 它是所有右侧通道的通用寄存器、因此只有活动通道传输计数才会反映在这些位中。 因此、我们必须读取当前活动通道编号并存储这些数据。
--
谢谢、
Jagadish。