在我C:\ti\simplelink_cc26x2_sdk_2_30_00_34\examples\rtos\CC26X2R1_LAUNCHXL\ble5stack\multi_role修改了可以发送不大于20字节长度的数据,现在手机与这个CC2652Launchpad连接,手机发送10个字节的数据长度,CC2652Launchpad可以接收到手机发来的数据并且串口打印成功,但是手机端log每发送一次就会报一个GATT_INVALID_ATTRIBUTE_LENGTH的错误,此错误在手机SDK中的提示为A write operation exceeds the maximum length of the attribute。如果手机发送一个字节就不会有这个错误。请问这是怎么回事呢?
Viki Shi:
手机的系统及支持的BLE版本是什么?是否有其他手机可以对比测试?
user5869846:
回复 Viki Shi:
支持4.2的,但是发可以成功,从机也可以收到并打印数据,就是手机会报错。发一个字节不会报错。这是怎么回事呢?
Viki Shi:
回复 user5869846:
两边的ATT_MTU_SIZE设置是否一致?
user5869846:
回复 Viki Shi:
一致的都是23的ATT_MTU_SIZE
Viki Shi:
回复 user5869846:
比较奇怪,是否能用其他手机同样代码测试一遍?
user5869846:
回复 Viki Shi:
其他手机测试也是一样的,我之前在CC2642R2F的SDK上修改发送20个字节没有出现这个问题。现在是只要发送超过一个字节,手机端就会报GATT_INVALID_ATTRIBUTE_LENGTH,但是从机端可以接收到数据并打印。