如何实现通过lightblue先连接上设备,再通过lightblue发指令实现配对绑定?如果手动配对绑定不安全的,但是要是我一定要做,2640这边的程序代码要怎么改?
kqian0327:
你好,
这个是可以实施的。
对你的bonding/pairing进行如下设置.
在static void SimpleBLEPeripheral_init(void)函数内:
// Setup the GAP Bond Manager { uint32_t passkey = 0; // passkey "000000" uint8_t pairMode = GAPBOND_PAIRING_MODE_WAIT_FOR_REQ; uint8_t mitm = TRUE; uint8_t ioCap = GAPBOND_IO_CAP_DISPLAY_ONLY; uint8_t bonding = TRUE;
GAPBondMgr_SetParameter(GAPBOND_DEFAULT_PASSCODE, sizeof(uint32_t), &passkey); GAPBondMgr_SetParameter(GAPBOND_PAIRING_MODE, sizeof(uint8_t), &pairMode); GAPBondMgr_SetParameter(GAPBOND_MITM_PROTECTION, sizeof(uint8_t), &mitm); GAPBondMgr_SetParameter(GAPBOND_IO_CAPABILITIES, sizeof(uint8_t), &ioCap); GAPBondMgr_SetParameter(GAPBOND_BONDING_ENABLED, sizeof(uint8_t), &bonding); }
配对改为等待主机请求
uint8_t pairMode = GAPBOND_PAIRING_MODE_WAIT_FOR_REQ;
IOcap改为no input no output即可
uint8_t ioCap = GAPBOND_IO_CAP_NO_INPUT_NO_OUTPUT;