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.

[参考译文] TMS570LS0714:SCI via DMA 消息被常规 sciSend 函数覆盖

Guru**** 2482225 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/727579/tms570ls0714-sci-via-dma-message-overwritten-by-regular-scisend-function

器件型号:TMS570LS0714

我有两种将 UART 数据从 MCU 发送到 PC 的方法:一种使用标准 TI SCI 驱动程序(sciSend 函数)、另一种使用 DMA。 但是、如果我使用 DMA 函数发送消息、并且在使用标准 sciSend 的另一条消息之后不久、DMA UART 消息就不会出现。 是否有方法可以使用 DMA 和 sciSend 发送消息、并确保两种类型的写入都成功完成、不会重叠或相互取消?

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

    您是否也将 DMA 用于其他传输? 如果不是、CPU 可以检查 DMA 是否"忙"进行传输、如果是、则等待 DMA 传输完成、然后再发送其自己的数据。

    对于尝试使用 UART 端口等相同硬件资源的 DMA 和 CPU 代码而言、这并不常见。 您是否可以为这两个端口之一使用备用 UART 端口? LS0714支持两个 UART 接口。

    此致、
    Sunil