芯片:CC2640R2F
例程:ble5stack->SimplePerpheral
SDK: V2.2
设计中包含三个角色:peripheral, central (hosttest+btool, smart phone etc), observer.其中observer有低功耗要求,因此不进行连接,仅从peripheral的广播中获取数据,所以peripheral需要持续进行广播。
问题发生在创建连接后,当MAX_NUM_BLE_CONNS设为1时,发现只有与Btool创建了连接,再更新广播数据就会出错。其中LoadByBuffer这种执行函数的返回结果没问题,返回值都是succ,但是返回的GAP有问题,出错时会只返回一个ADV set 0 disabled.然后广播就停止了,observer也扫描不到设备。
最终发现只要把MAX_NUM_BLE_CONNS设为2就好了,但是设为2后,创建两个连接后还是会发生一样的问题。因此可以推断是连接数达到MAX_NUM_BLE_CONNS后导致的。
在程序中有一个判断,是当连接数达到MAX_NUM_BLE_CONNS后关闭广播,那里我已经做了修改,对实验结果应该是没有影响的。
见过类似问题的大神来看看啊~
Viki Shi:
论坛有类似问题,参考这边解答: e2e.ti.com/…/633737
z z46:
回复 Viki Shi:
这个贴子我看过啦,这里面回答的问题是已经创建了MAX_NUM_BLE_CONNS个连接后,再有设备发起连接怎么办,而我的问题是,创建了MAX_NUM_BLE_CONNS个连接后,无法正常更新广播数据了。
所以是不同的问题,但仍然万分感谢你的解答。