cc254x切换MAC地址后配对PIN码错误的问题请教
时间:10-02
整理:3721RD
点击:
我用CC254X测试HidEmuKbd例程,HidEmuKbd设置了配对密码654321,广播后手机可以找到设置,输入654321可以绑定成功。
连接后,发送切换MAC地址指令,模块收到指令后断开与手机的连接,修改HidEmuKbd的MAC地址,然后再广播,这时候手机会查找到新HidEmuKbd设备,但是在连接时输入654321提示PIN或配对密钥不正确。
我也曾经使用过HidEmuKbd_Init函数重新初始化,同样提示PIN码不正确,请问我应该如何在运行时修改MAC地址而不影响配对呢?
用下切换的代码如下:
GAPRole_GetParameter(GAPROLE_BD_ADDR, macAddress); HCI_EXT_DisconnectImmedCmd(gapRole_ConnectionHandle); macAddress[0] = 0x03; HCI_EXT_SetBDADDRCmd(macAddress); uint8 param = TRUE; GAPRole_SetParameter( GAPROLE_ADVERT_ENABLED, sizeof( uint8 ), ¶m );
也使用过重新执行初始化函数
HidEmuKbd_Init(hidEmuKbdTaskId);
Feng,
这应该是因为你的遥控器上,也记录了手机的配对信息。
你在断开和手机连接后,修改mac地址,还需要删除和手机的配对信息,这个可以通过调用bond manager的接口来实现。
我在系统初始化里执行了清绑定操作GAPBondMgr_SetParameter( GAPBOND_ERASE_ALLBONDS, 0, NULL );,然后断开连接、切换MAC地址、重新广播,绑定时还是出现同样的错误
在我尝试将要修改MAC地址保存到FLASH,然后通过软件复位HAL_SYSTEM_RESET();,上电时在HidEmuKbd_Init中判断并更新MAC地址,在绑定时是正常的,但是这样会导致RAM里的数据丢失。