TI中文支持网
TI专业的中文技术问题搜集分享网站

CC2642R: UART2_read读到完整一帧的数据

Part Number:CC2642R

串口输出为每帧4字节01020304,使用UART2_read(uart, isrRxBuf,4, NULL)读取,如何可以读到完整的一帧数据,目前读到的数据是并不是完整的一帧,读到的可能是01010201等等

Yolande Wang:

您好,

JX Z 说:使用UART2_read(uart, isrRxBuf,4, NULL)读取,如何可以读到完整的一帧数据,目前读到的数据是并不是完整的一帧

查看您的代码的缓冲区大小,确保能够容纳一帧的最大长度

另外,可以尝试使用循环不断调用 UART2_read 函数,直到接收到完整一帧数据为止,可以使用一个标志来判断是否已经接收到完整的一帧数据

以下是我写的一个模板,例如:

while (!isCompleteFrameReceived) {UART2_read(uart, receiveBuffer, MAX_FRAME_SIZE, NULL);// 在这里添加逻辑,检查是否接收到完整的一帧}

,

JX Z:

好的,simple_peripheral的时间应该怎么设置,目前串口输出周期为0.1s,simple_peripheral周期应该如何设置以匹配

,

Yolande Wang:

simple_peripheral 这是什么,指例程还是具体某一个外设?

,

JX Z:

例程simple_peripheral_CC26X2R1_LAUNCHXL_tirtos7_ticlang

,

Yolande Wang:

如果您想设置广播时间,可以参考一下这个贴:https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1260577/launchxl-cc26x2r1-advertisement-time/4772303?tisearch=e2e-sitesearch&keymatch=simple_peripheral%2525252520time#4772303

另外如果您的初始问题已经解决了,请标记已解决。

新问题发新帖提问,感谢理解。

,

Yolande Wang:

不明确您想设置什么时间,您可以看看这个:https://dev.ti.com/tirex/explore/node?node=A__AeE0v3645AxQnabd1AT4cA__com.ti.SIMPLELINK_ACADEMY_CC13XX_CC26XX_SDK__AfkT0vQ__LATEST

,

JX Z:

主要目的是确保缓冲区有数据传来就执行uart2_read,目前就是担心uart2_read执行过快或者过慢,从而导致遗落帧数据

,

Yolande Wang:

不需要设置时间,您可以看下这个帖子:

https://e2echina.ti.com/support/machine-translation/mt-bluetooth/f/mt-bluetooth-forum/395646/cc2642r-uart2/1361199

,

Yolande Wang:

JX Z 说:确保缓冲区有数据传来就执行uart2_read

这个需求可以使用中断来实现。

赞(0)
未经允许不得转载:TI中文支持网 » CC2642R: UART2_read读到完整一帧的数据
分享到: 更多 (0)