工具/软件:TI-RTOS
当前开发环境:
Windows 7
CCS v6.1.2.00015
目标处理器 Sitara AM437X
NDK 2_24_03_35
PDK_AM437X_1_0_4
PROCESSOR_SDK_RTOS_AM437X_3_01_00_06
我们正在尝试将 UART 3集成到我们的系统中。
UART 1的行为正常且可以理解。
我们尝试使用 UART 3、其阻塞模式配置与 UART 1相同。
UART 1作为 调试端口运行、它接受键盘命令并输出状态。 它在阻塞模式下运行、这样 UART_READ() 操作 会导致线程阻塞、直到接收到字符为止。
此接口的性质意味着 UART 1 FIFO 通常为空、因为它正在等待用户的手动输入。
我们尝试 以类似的方式使用 UART 3、但我们连接到一个 GPS 设备、该设备 向我们广播数据。 我们看到 的是 UART_READ() 操作会将数据返回给应用程序,直到它第一次遇到 FIFO 为空。 一旦处于此状态、线程就会阻止、但不会返回数据。 我们在系统中配置了数据分析仪、因此我们可以看到正在从 GPS 器件传输的数据包。 UART_RXFIFO_LVL 寄存 器也在递增、表明数据正被压入 UART FIFO。
我们更希望在二进制模式下运行 UART 3、但 也尝试了文本模式。 GPS 数据是 NMEA,因此是简单的 ASCII 接口,因此我们应该能够使用与 UART 1相同的操作特性配置 UART 3?
总结:一旦遇到第一个 FIFO 为空, UART 3将不会将任何后续接收到的数据返回给应用程序。 但是 UART 1可以吗?
如果对这一问题的经验有任何想法或资料,将不胜感激。
谢谢
SI