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:
您好,我这边有私信给您,您可以查看一下,谢谢。