微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > CC2640 GATT_WriteCharValue的调用问题

CC2640 GATT_WriteCharValue的调用问题

时间:10-02 整理:3721RD 点击:

在ble_sdk_2_02_01_18的central工程中,主设备从断电状态上电以后,连接peripheral,然后调用GATT_WriteCharValue往peripheral写数据,根据gatt.h里的函数描述,任务将会接收到GATT_MSG_EVENT事件。

在前两次调用GATT_WriteCharValue的时候,任务可以马上接收到GATT_MSG_EVENT事件,但是从第3次调用起,任务每次都会延迟1600ms(几乎都是这个值)才会接收到GATT_MSG_EVENT事件。

排除问题进行的分析和步骤:

1、把任务的堆栈加得足够大,问题仍然如此。

2、用比较原始的版本去操作,问题同样存在。

3、为了排查是否peripheral端的问题,我用light blue去连接peripheral,然后往里面写数据,light blue是可以马上收到回复的。

个人认为,是否SDK底层有什么bug,否则不会每次调用,都会精确到1600ms才能收到GATT_MSG_EVENT事件的。

目前手上这个项目已经完成了大部分工作了,但是遇到这个问题无法解决,请TI工程师帮帮忙找一下问题,不胜感激!

你如果用SDK的central image也会有这个问题吗?

C:\ti\simplelink\ble_sdk_2_02_01_18\examples\hex\cc2650em_simple_central_rel.hex

谢谢回复!

已经找到原因了,问题还是出现在peripheral中,这是最大连接间隔的问题,peripheral中设置了是800ms,把这个参数改小就行了。

但是为什么每次都是1600ms,或者用lightblue就不会有这样的问题,暂时没时间去研究。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top