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.

[参考译文] CC2642R:Display_printf 与 UART_WRITE

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/859706/cc2642r-display_printf-vs-uart_write

器件型号:CC2642R

我想将电路板中的数据记录到 Linux 机器中、当我使用 Display_printf (与 Display_Type_UART 初始化)传输串行数据时、我可以使用 minicom 在 Linux 机器上正确查看所有数据。  

但是、当我使用 UART_WRITE 从电路板传输串行数据时、我会看到机器上出现随机的 gibberish。  

 Display_printf 和 UART_WRITE 之间有何不同?

2.当我使用 Display_printf 时、发送1个字节的数据需要大约3ms、为什么会这样-我可以减小这个值吗?

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

    1) 1)如果您查看驱动程序(C:\ti\ sources\ti\display)、显示驱动程序使用 UART_WRITE。 您是否已检查波特率设置是否正确? 如果您遇到 gibberish 问题 、这通常就是问题所在。  

    2) 1个字节作为一个字母(char)? 默认波特率为115200、这意味着应以 us 的刻度而不是 ms 打印字符。  

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

    是的、波特率设置正确-其设置为115200

    它应该以微秒为单位、但每次我调用 Display_printf 时、无论我要打印的阵列大小如何、都需要大约3ms、无论是1个字符还是5个字符。

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

    如何测量打印所需的时间? 我发现、时间与您要打印的内容的长度无关、这一点有点奇怪。  

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

    静态空 Print_thread()

    静态 uint32_t time1、time2、dt;

    dispHandle = Display_open (Display_Type_UART、NULL);

    对于(;)

    Time2 = Clock_getTicks();
    DT = time2- time1;
    Display_printf (dispHandle、MR_ROW_CUR_CONN+LINE_NO、0、"%d\n\r"、dt);//这始终提供3xx 的输出、即3ms
    LINE_NO++;
    Time1 = Clock_getTicks();

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

    我认为这是 Display_print 导致的延迟。

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

    您可以访问 http://dev.ti.com/tirex/content/simplelink_academy_cc13x0sdk_2_10_02_10/modules/debug/debugging_output/debugging_output.html

    您要打印哪种类型的数据?