CC2640需要配对绑定设备,所以在simple_peripheral.c里面添加了两个回调函数,即ProcessPasscodeCB和ProcessPairStateCB。
在绑定了一个设备以后,后面的设备就不再给绑定,所以在ProcessPairStateCB里,GAPBOND_PAIRING_STATE_STARTED状态,读取绑定数量,如果绑定数量不为0,则调用函数断开连接。
读取绑定数量的操作为GAPBondMgr_GetParameter(GAPBOND_BOND_COUNT,&count);
但是只要在ProcessPairStateCB里调用了GAPBondMgr_GetParameter这个函数,不管是读取绑定数量还是别的操作,程序就死机,我在两个版本的SDK都试过,都出现同样的结果,两个版本的SDK分别为:
ble_sdk_2_02_01_18
ble_cc26xx_2_01_00_44423
同样类似问题,之前我也发过帖,但是一直没有解决。
http://www.deyisupport.com/question_answer/wireless_connectivity/bluetooth/f/103/t/142329.aspx
目前用2640开发过几个项目,感觉跟2540相比,2640的SDK用得不是很顺心,各种麻烦问题不断。因为英文不好,稍微详细一点的描述,都发不了,所以麻烦TI工程师帮忙重视一下这些问题,看看能否找到解决的办法,十分感谢!!
Sheldon He:
请看看这些文档能否帮助到你,我暂时没有时间来亲自测试,如果还有问题我会帮你把该问题转到英文论坛上,请你在提供一些细节。
软件开发指南:http://www.tuner168.com/uploads/soft/161222/3-161222111234.pdf
API使用手册:http://dev.ti.com/tirex/content/simplelink_cc13x0_sdk_1_50_00_08/docs/blestack/blestack-api/group__GAPROLES__BONDMGR__API.html#ga2c3a3e432a6d3e1abb1900c37ffda8df
user4184198:
回复 Sheldon He:
你好,
你提供的文件,是函数的使用说明,应该解决不了这些问题。
我认为出现这些问题的主要原因,还是跟icall这个中间角色有关,在使用icall的时候,需要执行分配内存、发送消息这些动作。是否在回调函数里执行这些动作就会出问题呢?
以下是我关于配对、绑定的回调函数的注册、使用代码:
1)、
// GAP Bond Manager Callbacksstatic gapBondCBs_t simpleBLEPeripheral_BondMgrCBs ={ ProcessPasscodeCB, // Passcode callback (not used by application) ProcessPairStateCB // Pairing / Bonding state Callback (not used by application)};
2)、
VOID GAPBondMgr_Register(&simpleBLEPeripheral_BondMgrCBs);
3、
static void ProcessPairStateCB( uint16 connHandle, uint8 state, uint8 status ){ switch(state) { case GAPBOND_PAIRING_STATE_STARTED: {
uint8_t count; GAPBondMgr_GetParameter(GAPBOND_BOND_COUNT,&count);//一执行到这里,程序就会死掉
}
break; case GAPBOND_PAIRING_STATE_COMPLETE: break; case GAPBOND_PAIRING_STATE_BONDED: break;
case GAPBOND_PAIRING_STATE_BOND_SAVED: break; case GAPBOND_PAIRING_STATE_CAR_READ: break; default: break; }
}
Sheldon He:
回复 user4184198:
你好,请检查那个PDF中的5.4.3 Using GAPBondMgr,看看每一步是不是都做了,如果还是不行我就帮你转到E2E论坛来请教专家。我暂时没有做详细的研究,如果方便请上次你的工程给我测试。
Susan Yang:
您也可以自行到E2E: https://e2e.ti.com/support/wireless_connectivity/bluetooth_low_energy/ 发帖询问