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.

[参考译文] RTOS/TM4C1294NCPDT:UART_READ 行为

Guru**** 2618835 points

Other Parts Discussed in Thread: TM4C1294NCPDT

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/580718/rtos-tm4c1294ncpdt-uart_read-behaviour

器件型号:TM4C1294NCPDT

工具/软件:TI-RTOS

您好!

我正在从事具有 UART 调制解调器接口的物联网项目。 我的开发环境是微控制器:TM4C1294NCPDT、OS:TI-RTOS

我使用 AT 命令来控制和配置调制解调器。 我使用 UART_READ API 读取调制解调器发送的数据。 我使用以下配置

uartParams.baudrate = 115200u;

uartParams.readEcho = UART_ECHO_OFF

uartParams.readTimeout = 500u;

uartParams.readDataMode = UART_DATA_TEXT

uartParams.writeDataMode = UART_DATA_TEXT

uartParams.readReturnMode = UART_return_full

 

我将执行以下操作来处理 AT 命令。

1.使用 UART_WRITE 发送 AT 命令

使用 UART_READ 进行读取响应

我对 UART_READ 的用法有以下疑问。

UART_READ 何时返回? 它是在获得第一个字符后返回还是等待超时/缓冲区满?

2.例如、我的响应长度为200字节、我已配置1ms 的超时。 假设200字节的传输将花费100ms。 在本例中、在读取完整响应数据包之前将发生超时。 如何检索剩余的响应数据? 第二个 UART_Read 是否会提供重命名数据? 如何实现这一点?

3.我的调制解调器可以向 UART 发送一些未经请求的响应。 在某些情况下、它可以在不发送命令的情况下向 UART 发送消息。 我将仅在发送 AT 命令后读取 UART。 我如何阅读这些未经请求的回复?  我的第一个 UART_Read 是否 可以包含宝贵的非邀约响应?


谢谢、

Shijo Thomas

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Shijo、
    UART_READ()将在读取请求的字节数或超时到期时返回,以先发生的时间为准。 返回值是读取的字节数。 您可以通过再次调用 UART_read()来读取传输的剩余字节,直到您收到所有字节。

    如果调制解调器在调用 UART_read()之前发送未经请求的数据,则应将其保存在 UART 的内部环缓冲区中,以便在调用 UART read 时获得数据。 环形缓冲器的大小可在 TivaC 电路板文件的 UART 配置中进行配置(例如 EK_TM4C1294XL.c 或您的情况中所调用的任何内容)。

    此致、
    Janet