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:如何配置 UART+DMA 以从 IWR1642接收不等大小的点云数据?

Guru**** 2524550 points
Other Parts Discussed in Thread: EK-TM4C1294XL, IWR1642BOOST, IWR1642

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/843247/tm4c1294ncpdt-how-to-config-the-uart-dma-to-receive-the-unequal-size-point-cloud-data-from-iwr1642

器件型号:TM4C1294NCPDT
Thread 中讨论的其他器件:EK-TM4C1294XLIWR1642BOOSTIWR1642

大家好、TI 团队、

我使用 TI EK-TM4C1294XL 波特率连接到 IWR1642BOOST 以处理点云数据、UART4用于接收 点云数据。

首先、我直接在 UART RX 中断处理函数中将接收到的数据逐一发送到应用任务、有时会丢失数据。

 它需要使用 UART + DMA 来接收点云数据、因为波特率 为921600bps。

在 TI TM4C1294 UDMA_DEMO (C:\ti\TivaWare_C_Series-2.1.4.178\examples\boards\ek-tm4c1294xl\UDMA_DEMO)中 、DMA 传输数据大小(256字节)每次都是固定的、它使用乒乓模式处理数据、但每次 IWR1642的点云数据大小 都是不相等的。

如何使用 UART+DMA 处理  每次接收到的不等大小数据?  以及如何在 DAM 中断句柄函数中获取当前的 DMA 传输数据大小?

此致、

Eric

 

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

    UDMA 不能检测长度可变的字符串的传输结束。 通常、在接收具有终止字符的可变长度字符串时、会使用中断。 如果缺少字符、可能是因为您有其他中断例程会延迟 UART4中断。 在 UART4 的最高级别上使用嵌套中断。 UART4中断例程必须非常短、将 FIFO 清空到缓冲区中、检查终止字符、如果发现后退出、则设置"易失性"标志。 该字符串的所有处理都应在中断例程之外。