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.

[参考译文] CC2652R7:UART 接收不工作

Guru**** 2942830 points

Other Parts Discussed in Thread: CC2652R7

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1327392/cc2652r7-uart-receive-not-working

器件型号:CC2652R7

您好  

使用的 SDK: simplelink_cc13xx_cc26xx_sdk_7_10_01_24

使用的代码:simple_peripheral_lp_CC2652r7_tirtos7_ticlang

我们使用处理器与 CC2652R7 MCU 之间的 UART 通信。 我们将 UART2.h 库用于 UART 接口。  此处"UART2_Read"将处于阻塞调用中。 在 从处理器发送数据时 、我们能够 使用"UART2_Read" API 进行接收。 80%它工作正常。 有时 在  从处理器传输数据时,这个 "UART2_READ"不会触发以读取数据,但是,当从处理器执行第二次传输时  ,我们正在接收这两个数据。  

示例:  

 已成功发送第1个来自处理器的发送(20字节)-但未在 MCU 上接收

第二次 从处理器发送(20字节) 成功发送-同时接收两个数据 (40字节)

为什么有时它是发生像上述场景? 请帮助我们解决该问题。  

我的代码中使用的 UART 配置:  

UART2_Params 参数;

UART2_params_init (&params);
params.baudrate = 115200;
params.readMode = UART2_Mode_Blocking;
params.writeMode = UART2_Mode_Blocking;

Uhandle = UART2_open (CONFIG_UART2_SOC、&params);
if (Uhandle == NULL)
{
gcam_printf (loge、"UART Open error…!");


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

    你好 Mohan Prasanna R

    我希望你们做得好。 我想我在使用自己的 UART 应用时也有类似的经验、在这些应用中、我需要清除缓冲区并刷新 UART、以便 UART_READ 可以正确读取数据。 您能否尝试在循环中刷新 UART、看看它是否有任何作用? 否则、我们可以尝试进行调试、看看为什么两个数据包可以同时接收。 您的小 UART 代码片段似乎正确。 有关更多 UART2示例、请按照 syscfg (UART2.h 文件参考)中"examples"中的代码片段进行操作。  

    谢谢。
    A·F

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

    尊敬的 Alex:

    感谢您的答复。 我已经这样做了,每次阅读后,我们仍然面临着这个问题。 请进行调试,并为此提供一些解决方案。

    读代码段:

    memset (pMsg_proces_buf、0、 MAX_SINGLE_PAYLOAD_SIZE);

    usBufflen = MAX_SINGLE_PAYLOAD_SIZE;


    STATUS = UART2_READ (Uhandle、pMsg_proces_Buf、usBufflen、&usReadLen);
    if (status!= PNRJ_GCAM_SUCCESS)
    {

    UART2_flushRx (Uhandle);

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

    您好,Mohan Prasanna R,

    您是否碰巧有一个输出数据的 PuTTY 终端? 在前面需要输入自己数据两次的测试中、我通过 PuTTY 输入了数据、这时我添加了 UART2_flushRx 并将消息缓冲区设置为零(具有 memset)。 下面是我如何配置自己的程序的一个片段。  

    发送这两段 数据之间的延迟是多少?

    谢谢。
    A·F