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.

[参考译文] MSPM0L1306:通过 UART 识别传输结束

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1405413/mspm0l1306-recognition-of-end-of-transmission-with-uart

器件型号:MSPM0L1306

工具与软件:

尊敬的专家:

我想使用 MSPM0L1306上的 UART 设置半双工连接。 应连接 TX 和 RX 引脚。 以及数据的发送和接收。

我已经在标准模式下配置 UART、波特率为9600 8-N-1。 我已将 DMA 配置为通过 UART 传输和显示数据。 为了能够连接 UART 的 TX 和 RX 引脚、需要在传输结束后禁用 TX 路径、以便在 RX 路径上接收数据。 应启用 RX 引脚上的上拉电阻器。

为了识别传输结束、我启用了 EOT_DONE 中断。 当 EOT_DONE 触发时、可以禁用 TX 路径、并且可以激活 RX 路径。

但是、从其他帖子中也可以看出、只有当 UART 的 TX-path 和 RX-PATH 都启用时、EOT_DONE 才会触发。 是这样吗?

是否有其他方法可以对 MSP0L1306上 UART 传输的结束进行重新编码?

使用 dma_done_tx 中断时、要发送的某些数据将丢失、因为当 dma_done_tx 中断触发时、UART 可能尚未准备好发送。

谢谢。

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

    您好、Stefan、

    [报价 userid="620670" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1405413/mspm0l1306-recognition-of-end-of-transmission-with-uart "]但是、从其他帖子中似乎也看出、只有在同时启用了 UART 的 TX-path 和 RX-path 时才会触发 EOT_DONE。 这是真的吗?

    我只是对它进行了测试、这是真的。

    [quote userid="620670" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1405413/mspm0l1306-recognition-of-end-of-transmission-with-uart 是否有另一种方法可以重新编码 MSP0L1306上 UART 传输的结束?

    也许您可以使用 TX 中断 + while (DL_UART_Main_isBusy (UART_0_INST));我编写了一个演示代码、可帮助您了解这个 way.e2e.ti.com/.../uart_5F00_rw_5F00_multibyte_5F00_fifo_5F00_poll_5F00_LP_5F00_MSPM0L1306_5F00_nortos_5F00_ticlang.zip

    此致、

    Zoey

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

    Zoey、您好!

    感谢您提供忙标志提示。

    我已经在 DMA_DONE_TX 中断处理程序中使用了 while (DL_UART_Main_isBusy (UART_0_INST)); 这样就解决了问题。

    谢谢。

    此致、

    Stefan