NRF51822配对绑定要点:
当手机发来配对请求,协议栈触发事件 BLE_GAP_EVT_SEC_PARAMS_REQUEST,将事件传送到设备管理器事件处理函数中: dm_ble_evt_handler()
该事件处理函数在ble_evt_dispatch()中注册。
在对该事件的处理中,需要调用回复API回复配对参数 sd_ble_gap_sec_params_reply
sd_ble_gap_sec_params_repl 的第三个参数g_pair_params参数就是要回复的配对绑定参数设置。
该参数的配置是使用设备管理器注册函数 dm_register() 。具体初始化过程可以参考上一篇教程。
如果需要配对和绑定,参数通常设置为:
#define SEC_PARAM_BOND 1 /**< Perform bonding. */
#define SEC_PARAM_MITM 0 /**< Man In The Middle protection not required. */
#define SEC_PARAM_IO_CAPABILITIES BLE_GAP_IO_CAPS_NONE /**< No I/O capabilities. */
#define SEC_PARAM_OOB 0 /**< Out Of Band data not available. */
#define SEC_PARAM_MIN_KEY_SIZE 7 /**< Minimum encryption key size. */
#define SEC_PARAM_MAX_KEY_SIZE 16 /**< Maximum encryption key size. */
注:绑定是配对过程的一个可选项。使用设备管理器绑定对端设备之后(BOND 1),再次连接不需要手动配对,双方会自动配对,建立加密连接。