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.

[参考译文] Linux/AM5728:UART 通信问题

Guru**** 2589245 points
Other Parts Discussed in Thread: AM5728

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/638454/linux-am5728-uart-communication-issue

器件型号:AM5728

工具/软件:Linux

我已经使用 AM5728的 UART3通过 Tx 向其他处理器(例如 x)发送数据、并在 Rx 引脚接收处理器(x)的输出。为此、我编写了一个应用程序、该应用程序将 UART 器件初始化为特定的波特率和一些其他基本设置。 应用程序不会等待通过 Rx 引脚读取的中断、而是处于无限循环中、一旦数据通过 Rx 可用、它将显示相同的内容。

我所面对的问题是:

当我将 Rx 连接到某个源时、即如果某些数据是通过 UART 的 Rx 连续提供的、而不是通过应用接收数据、则会到达 Tx 引脚。 我通过探测 Tx 引脚对其进行了交叉检查。

因此、假设 RX 持续接收 B C、然后通过探测 Tx、我发现它连续获得"C"。  

此外、这并不是每次都发生、有时应用程序会接收数据并正常工作、此时数据不能通过 Tx 引脚获取。 我观察到的是,当它进入 Tx 时,我的应用程序将不会接收到它,如果我的应用程序正在接收它,那么 Tx 将不会接收它。

这是怎么可能的? 我还有交叉检查环回,这也适用于从 Tx 到 Rx,而不是从另一种方式。  

我不熟悉这一点、因此如果我的问题不清楚、请您提一下。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    首先、UART3是 AM57x 器件上的默认 Linux 调试控制台。 在应用中使用 UART3之前、您是否已将调试控制台更改为另一个 UART?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的回复。是的、我使用 uart1作为调试控制台。 我尝试了某些东西、发现一些启动服务正在使用 uart3、并将通过 Rx 传输的所有内容交付给 Tx。 我不知道正在执行该操作的确切服务、但我更改了 Linux 的运行级别、因此在启动过程中启动的过程更少、现在工作正常。 )