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.

[参考译文] CC1312R:uart2.

Guru**** 2589280 points
Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1172432/cc1312r-uart2

器件型号:CC1312R
Thread 中讨论的其他器件:SysConfig

你(们)好

我正在使用 uart2callback、它在从终端接收单个字符时使用中断、然后中断都可以正常工作、但是我希望能够解码一个看起来像的字符串(Nextion 显示)

(65 00 01 00 FF FF) FF FF FF FF FF 部件表示已完成,是否有人可以 帮助我实施此操作或向我展示实现此操作的最佳方法。

此致

David

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

    尊敬的 David:

    您可以首先查看我们的 UART2文档: https://dev.ti.com/tirex/explore/content/simplelink_cc13xx_cc26xx_sdk_6_30_01_03/docs/drivers/doxygen/html/_u_a_r_t2_8h.html

    然后、要检测最后一个尾随 FFs、可以在中断处理程序中实现一个在接收 FFs 时递增的计数器。

    当此计数器达到所需的 FF 量时、您可以考虑收到的消息。

    如果遇到任何其他字符、该计数器将被重置。

    此致、

    Arthur

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

    您好、Arthur

    我已经看了您提到的文件、但它实际上对中断方面的事情、也就是线路没有帮助  

    INT_fast16_t UART2_READ ( UART2_Handle  手柄、
    void *   缓冲器、
    size_t   尺寸、
    size_t *   字节参考  
    )

    看起来很有趣、但我不知道如何将其设置为在说6个接收到的字符时中断、然后中断是否可以帮助别人?

    此致

    David

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

    尊敬的 David:

    为此、您必须配置 UART RX 中断 FIFO 阈值。 您可以通过 SysConfig 在 UART2下执行此操作:


    有关该 FIFO 中断触发级别的信息、请参阅 CC1312技术参考手册的第21.4.5章。

    此致、

    Arthur

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

    您好、Arthur

    无论我做什么,我都无法使它正常工作,它总是在第一个字符上触发中断。

    我尝试更改我的 syscfg 文件 RX 中断 FIFO 阈值 2/8,4/8,6/8,7/8没有区别。

    然后、我尝试  了 hwattrs_0.rxIntFifoThr = 6; 在代码中、也没有产生任何差异、始终在第一个字符上触发中断。

    此致

    David

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

    尊敬的 David:

    抱歉让你迷路了。 根据该主题:

    https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1109635/cc1352p-questions-about-uart2-config-params

    我们看到 RX FIFO 阈值不能用于您的情况。

    您必须做的实际上是 UART_READ()调用中的 size 参数(在您的情况下为6):

    /* Pass NULL for bytesRead since it's not used in this example */
        status = UART2_read(uart, &input, 6, NULL);

    然后、您将注意到、您的中断将在接收到6个字符后被调用。

    此致、


    Arthur

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

    您好、Arthur

    不幸的是、仍然不起作用我使用了 uart2callback 样本并更改为6、但始终会在每个字符上中断。

    此致

    David

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

    尊敬的 David:

    此外、 在打开 UART 之前、必须将 UART_ReadReturnMode 设置为 UART2_ReadReturnMode_Full、并将 UART_readMode 设置为 UART2_Mode_callback。

    您应该会看到、在回调函数中、"count"参数现在等于6。

    此致、

    Arthur

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

    您好、Arthur

    感谢您帮助我做到这一点

    此致

    David