关于CC2540的pairing问题
基于官方1.4.1协议栈,部分代码如下:
uint32 passkey = 1234; // passkey "000000"
uint8 pairMode = GAPBOND_PAIRING_MODE_INITIATE;
uint8 mitm = TRUE;
uint8 ioCap = GAPBOND_IO_CAP_DISPLAY_YES_NO;
uint8 bonding = FALSE;
static void ProcessPasscodeCB(uint8 *deviceAddr,uint16 connectionHandle,uint8 uiInputs,uint8 uiOutputs )
{
uint32 passcode = 1234;
// Send passcode response
GAPBondMgr_PasscodeRsp( connectionHandle, SUCCESS, passcode );
}
用这样的配置, 然后用iPhone连接,出现这样的情况:手机弹出输入密码,但是我按了取消,然后照样是显示“连接成功”。 这是怎么回事!?
Sanwzy,
你这样配置是主动发起连接。
你在iPhone上取消,iPhone也是能连接成功的。iOS默认是不需要配对的。
本质上,在你配对之前,设备已经连接成功了。
我在 peripheralPairStateCB() 里配对失败的时候调用 GAP_TerminateLinkReq( simpleBLEPeripheral_TaskID, connHandle, HCI_DISCONNECT_AUTH_FAILURE ); 断开连接, 但是好像没效果!是使用不对吗?