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 传输到存储器

Guru**** 2609285 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/759317/tm4c1294ncpdt-dma-transfer-form-uart-to-memory

器件型号:TM4C1294NCPDT

大家好、

我正在处理 Modbus 通信堆栈、我想使用 DMA 将字符从 UART 传输到存储器。 由于 Modbus 的性质、接收到的数据包的大小取决于数据字段和数据包类型。 我学习 了 UDMA 控制器和 UART。

问题在于、UDMA 在传输开始时期望的是准确的字节长度、当接收到第一个字符时、该长度不可用。 我的当前实现读取从 UART FIFO 中读取、并尝试计算总大小。

是否可以针对大量数据发出 DMA 请求、并检测传输结束而不是读取 FIFO 和计算大小(例如禁用 FIFO 并获得接收超时、而不是禁用传输等)。

此致、

Norbert

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我认为您已经在使用最佳方法。 使用中断来接收足够的字节来确定数据包的长度、然后使用 uDMA 来接收其余的数据包。