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.

[参考译文] TMDS64EVM:TMDS64EVM、UART

Guru**** 2553260 points
Other Parts Discussed in Thread: TMDS64EVM

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1552028/tmds64evm-tmds64evm-uart

器件型号:TMDS64EVM


工具/软件:

您好:

参考: mcu_plus_sdk_am64x_10_01_00_32

所有 UART 驱动程序示例都将接收缓冲区大小设置为 8 个计数。

#define APP_UART_RECEIVE_BUFSIZE    (8U)
Uint8_t gUartBuffer[APP_UART_BUFSIZE]
Uint8_t gUartReceiveBuffer[APP_UART_RECEIVE_BUFSIZE]
在这些示例中、UART 句柄的定义和已知计数为 8。
如果我要在键盘和上发送超过 8 个字符的字符串和未知字符数条目
期望回显相同数量的字符。 在这种情况下应该改变什么?
谢谢、
Huynh
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    在这种情况下、我希望您将其视为单个字符输入、但在 while 循环中。

    例如、一次输入一个字符、直到您按下转义序列、然后不再发生 UART 写入。

    例如、伪代码如下所示:

    inputChar = take input();

    while (inputChar!=“/")“){

    //继续在此循环中逐个输入

    }

    请告诉我以上内容是否对您很好?

    注意: 您可以将宏  APP_UART_RECEIVE_BUFSIZE 的值更改为任何超过 8 的值、它应该是没问题的、它本身没有硬编码。

    谢谢、

    Vaibhav

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

    问题 集中在 UART 事务 (TRANS) 周围、计数设置为:  

    TRANS.COUNT = APP_UART_RECEIVE_BUFSIZE;
    因此、为了使接收缓冲区适应所有传入字符、在我们执行此操作时、应将该值设置为非常高的数字或设置为 1
    While 循环并寻求转义字符、如 CR/LF 或 NULL?
    在我看来、这是为触发 UART 接收而设置的值。
    谢谢、
    Huynh
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    另一个信息。 我有发送文件的应用程序。 因此、我必须 在此字段中设置确切的文件大小字符数、以便 UART 能够发送/接收。 如果我将其设置为下、则接收文件将很短。 如果我将其重新设置、则传输将不会发生、直到我发送更多虚拟字符以满足该值。 我尽量避免像这样的工作。 如何避免至少在发送端设置“transcount"。“。

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

    您能否指定是否将此文件发送到 NOR/NAND 闪存?

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

    编号 在我的应用中、我将使用 TeraTerm 接口通过调用此 UART 事务将文件发送到 TMDS64EVM。 接收到保存在缓冲区中的文件后、缓冲区的内容将保存在 I2C EEPROM 中。 下面是我之前描述的问题:  trans.count = file_byte_count

    如果我设置文件字节计数与文件大小完全相同、那么从 UART Rx 事务接收字节也没有问题。 如果我设置了欠计数、则我收到的文件将很短。 如果我设置超额计数,那么我必须发送额外的假字符来弥补差异(超额计数-文件大小),我试图避免. 当然、我的文件大小并不总是相同、因此我很难采用一种传输方法。

    我了解您关于文件是否保存在 NOR/NAND 中的问题。 由于到 NOR/NAND 的文件传输每个事务都是固定的(即 256KB/页)、因此非常简单。 因此、文件的内容不会保存在 I2C EEPROM 中

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

    您好、

    对于 UART 写入(这是您的要求)、请允许我稍后检查是否可以进行一些调整、以便您拥有自定义事务大小。

    请允许我在几个工作日内重新讨论这个问题。

    谢谢、

    Vaibhav

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

    来自 TMDS64EVM 的 UART 读取就是我需要的。 我从 TeraTerm 终端发送文件、该终端完全没有问题可供文件执行。 只有 UART 读取事务、如果大小不符合计数、则不会触发缓冲区的输入事务。 或者、如果在 count 下设置了计数(小于 TeraTerm 终端发送的文件大小、则会触发读取事务、但当然文件会很短。

    准确地说:文件通过 TeraTerm 终端从测试 PC 发送。 该文件应该由 TMDS64EVM 通过 UART 读取事务接收。 文件大小 (count) 未知

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

    您好 Kumar、

    对此问题有何帮助或回应?

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

    您好、

    如果这个 e2e 主题对您有帮助、请告诉我。

     关于:LP-AM243:AM243x UART 轮询模式问题 

    谢谢、

    Vaibhav

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

    你好、Vaibhav、

    添加:  

    TRANS.TIMEOUT = NUMBER_OF_CPU_TICKS;//足以让 TeraTerm 发送文件

    计数=(((UART_Config *) gUartHandle[CONFIG_UART_CONSOLE])->object->uartLld_handle ->ReadCount;

    当 trans.count = MAX_BYTE_COUNT;//文件大小<此数字时、将起作用

    感谢 Paul Barker 看到同样的问题。

    谢谢你