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/CC2650:UART 发送到接收周转时间

Guru**** 2553450 points
Other Parts Discussed in Thread: CC2650

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/573354/rtos-cc2650-uart-transmit-to-receive-turnaround-time

器件型号:CC2650

工具/软件:TI-RTOS

您好!

我在 CC2650上实现了一个简单的 UART 程序来与外部 MCU 通信、并且 CC2650遇到了一些无法从外部 MCU 接收数据的问题。

我的 CC2650程序如下:使用 UART_WRITE 向外部 MCU 发送字节、调用 UART_READ 以从外部 MCU 接收字节。 外部 MCU 代码如下:从 CC2650接收字节、将字节发送回 CC2650。  

在 CC2650应从外部 MCU 接收字节之前、该过程正常。 程序将在 UART_READ 调用中保持被阻止。 实验完成后、我确定外部 MCU 在 CC2650准备好接收数据字节之前发送数据字节。 在外部 MCU 上接收到一个字节并向 CC2650发送一个字节之间输入一个较短的延迟、即可让 CC2650读取数据。  

调用 UART_READ 后、CC2650何时准备好接收数据? 这是在任何地方定义的吗? 我搜索了很多文档(软件开发人员指南、TI-RTOS 文档等) 找不到任何东西。

谢谢、

-Matt

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、MT、
    我不知道对它进行了任何测量。 如果在阻塞模式(而非轮询版本)下使用 UART_Read、则可以测量从代码中所需位置开始的时间、直到在 UARTCC26XX_Read 中达到信标上的挂起。 只需在工作区中添加一份 UARTCC26XX.c 副本、并对其进行修改、即可切换某些 IO 以执行测量。

    另一种方法是启用硬件流控制、以确保发送器将等待 CC2650做好准备(清除以发送)。 通过定义 CTS/RTS 的引脚、可以在 uartCC26XHWAttrs 的板级配置文件中启用此功能。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Erik、

    好的、我也曾考虑过这一点、使用 GPIO 切换某些引脚来测量花费的时间。 我还将查看 CTS/RTS 引脚。 我必须确定我的应用是否需要它。

    我之前应该问的一个更大的问题是、器件的这种预期行为是不是? 或者、我使用的某些设置是否会导致它比其他设置慢?

    无意中发现了这个主题>>> e2e.ti.com/.../2004238
    这听起来像是 UART 的预期行为。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、MT、
    我快速阅读 UARTdriver doxygen Operation 一节、其中介绍了我安装的最新版本中的全双工模式:
    文件://C:/ti/tirtos_cc13xx_cc26xx_2_21_00_06/products/tidrivers_cc13xx_cc26xx_2_21_00_04/docs/doxygen/html/_u_a_r_t_8h.html

    我尚未测试过这种情况、我在 Thin ICE 上进行测试、但您能否尝试设置非阻塞回调模式并在您发出写入前发出读取以检查其是否正常工作。 论坛上有几个主题讨论 UART。 下面是一个有关如何设置回调模式的旧示例:
    e2e.ti.com/.../1437104