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
这个需求可以使用中断来实现。