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

LP-EM-CC2340R5: 如何调整BLE uart读写数据的长度

Part Number:LP-EM-CC2340R5

当前测试LP-EM-CC2340R5通过Uart写到PC的数据最长是800Bytes,其中末尾88Bytes是固定的。同样的数据写回LP-EM-CC2340R5,只能读到295Bytes。
请问有什么方法修改BLE读写数据的长度,另外这个长度是否有上限?

Alex Zhang:

您好,已经跟进您的问题,谢谢

,

Alex Zhang:

使用UART_read和/或UART_write函数时,必须始终使用固定长度。 但是,在执行读取操作时,可以使用UART_ReadReturnMode_PARTIAL。 例如,这允许您设置100字节的固定长度,但如果通过UART接收的数据只有20字节, 然后,读取操作将返回20个字节,以进一步了解部分返回模式的工作方式,请参阅您正在使用的SDK中UART驱动程序的文档 

,

Xuefeng:

代码中默认的readReturnMode是UART2_ReadReturnMode_PARTIAL。现在修改uart read长度结果达到预期。

但是写一个长度超过800字节的数据,手机端simplelink connect弹出“Perpheral connection timeout”,连接中断。BLE代码在uartRead的callback里添加断点没有走到。手机端simplelink connect刷新也看不到蓝牙ID。(此时PC端串口收到数据,收到的数据写入串口完成。如果写数据不超过800,也不会有问题)

在SDK中没有看到Uart write长度限制,而且通过断点确定write callback已经完成。可否再提供一些思路来解决这个问题?

,

Xuefeng:

代码中默认的readReturnMode是UART2_ReadReturnMode_PARTIAL。现在修改uart read长度结果达到预期。

但是写一个长度超过800字节的数据,手机端simplelink connect弹出“Perpheral connection timeout”,连接中断。BLE代码在uartRead的callback里添加断点没有走到。手机端simplelink connect刷新也看不到蓝牙ID。(此时PC端串口收到数据,收到的数据写入串口完成。如果BLE Uart写数据不超过800,也不会有问题)

在SDK中没有看到Uart write长度限制,而且通过断点确定write callback已经完成。可否再提供一些思路来解决这个问题?

,

Alex Zhang:

您好,已经跟进您的问题

,

Alex Zhang:

请您指定您使用的SDK版本。

我假设您正在研究Data_stream_UART_over_BLE示例。

您可以在 app_UART_over_data_stream.c 中找到它的定义。

但是我不明白你是否想发送 800 个字节以及最后的 88 个固定字节到底是什么意思?  

#define UART_MAX_READ_SIZE    (128)

现在将 UART 读取长度结果修改为预期的值”是什么意思?

,

Xuefeng:

1.BLE端向Uart写了800个字节,PC端收到的前712字节和BLE发送的数据是一致的;如果BLE发送200个字节,前面112字节是一致的。这两种情况后面88个字节是基本一样的,但是都不是我发在BLE端发出去的。2.Uart读取数据长度找到了修改的地方,目前已经达到预期。

所以现在的问题是BLE向UART写一个长度超过800字节的数据,手机端simplelink connect APPt弹出“Perpheral connection timeout”,连接中断。BLE代码在uartRead的callback里添加断点没有走到。手机端simplelink connect刷新也看不到蓝牙ID。(此时PC端串口收到数据,收到的数据写入串口完成。如果BLE Uart写数据不超过800,也不会有问题)。在SDK中没有看到Uart write长度限制,而且通过断点确定write callback已经完成。

,

Alex Zhang:

您好,我这边已经跟进您的问题,谢谢。

,

Alex Zhang:

您好,我这边有私信给您,您可以查看一下,谢谢。

赞(0)
未经允许不得转载:TI中文支持网 » LP-EM-CC2340R5: 如何调整BLE uart读写数据的长度
分享到: 更多 (0)