nrf52832 - HID

1、实验环境

硬件平台:nordic Nrf2832官方开发板

sdk版本:nRF5_SDK_12.1.0_0d23e2a

实验例程:ble_app_hids_keyboard

2、实现现象

直接运行官方demo,手机或者pc可扫描到hid设备并且可以成功连接,通过按键实现hello的发送,但是取消配对后,再次连接发现不能连接成功。重启开发板也不行,重新烧录应用文件也不行,只有全部擦除flash,重新烧录softdevice和应用程序,才可以重新连接。

3、问题分析

分析源码,发现源码中使用了绑定和白名单,首次绑定设备后,会将绑定信息写入flash中,下次广播将执行白名单,导致其它设备不能扫描连接。

4、解决方案

4.1、通过开机擦除绑定信息,可以在每次重启设备后,能被其它主机连接一次。擦除绑定信息所需修改初始化代码,如下:

/**@brief Function for application main entry.
 */
int main(void)
{
    bool     erase_bonds;
    uint32_t err_code;

    // Initialize.
    err_code = NRF_LOG_INIT(NULL);
    APP_ERROR_CHECK(err_code);

    timers_init();
    buttons_leds_init(&erase_bonds);
    ble_stack_init();
    scheduler_init();
    //使erase_bonds == true,即可擦除绑定信息
    erase_bonds = true;
    peer_manager_init(erase_bonds);
    if (erase_bonds == true)
    {
        NRF_LOG_INFO("Bonds erased!\r\n");
    }
    ……
}

猜你喜欢

转载自blog.csdn.net/gyb510/article/details/70188616