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.

[参考译文] CC2652P7:异步处理 UART 命令/输入

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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1303055/cc2652p7-handle-uart-commands-input-asynchronously

器件型号:CC2652P7

您好!

我有一个在循环中运行状态机的应用程序。

我想根据 UART 命令从终端异步对芯片进行软复位。

我怎样才能做到这一点?

谢谢

卡尔蒂克

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

    您好 Karthik、

    希望你好。 您可以设置一个单独的任务以异步执行您需要的函数。 然后根据需要调用"SysCtrlSystemReset();"来重置器件,如本主题中所述:

    https://e2e.ti.com/f/1/t/1302200/

    谢谢。
    A·F

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

    尊敬的 Alex:

    您能否提供或向我提供一个示例代码?

    谢谢

    卡尔蒂克

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

    您好 Karthik、

    我们的 SimpleLink Academy 应该具有入门所需的内容(POSIX Project Zero (TI.com))。  

    谢谢。
    A·F

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

    尊敬的 Alex:

    我已经浏览过这份文档。

    主线程在阻塞模式下初始化 UART。 有一个超级循环用于调用 UART_READ。 该功能会被阻止、直到它接收到外部输入。

    我想要的与此不同。

    在一个主线程中、用户输入通过 UART (UART 在阻塞模式下读取)进入状态机进行获取。 随后、状态机以循环方式运行、而其中不再有 UART 读取。

    如何修改整个应用、以确保 接收到来自终端的 UART 命令、而不会阻止代码。

    谢谢

    卡尔蒂克

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

    您好  Karthik、

    您可以尝试使用"UART2_Mode_nonblocking"(来自 UART2.h 文件)修改 uart2参数。  

    在#UART2_Mode_nonblocking 中,%UART2_read()将返回
    大小字节和 RX 循环缓冲区中的字节数之间的差值。
     在该模式中、应用程序应检查字节数
    在 bytesRead 参数中返回

    谢谢。
    A·F

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

    尊敬的 Alex:

    这不奏效。 在本例中、循环中也会调用 UART_READ。 所以、看起来并不是异步的。

    不存在配置 UART 中断的简单机制并且逻辑可以在中断服务例程中进行处理?

    谢谢

    卡尔蒂克

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

    您好 Karthik、

    UART2回调模式是非阻塞模式、它将启用 UART RX 输入 GPIO、如果接收到字节、则将在中断上下文中调用"readCallback"。 在 UART_Params 中、应该有称为"readMode"和"readCallback"的内容供您使用。  

    谢谢。
    A·F

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

    感谢 Alex。 这起作用了。

    -Karthik