nordic51|nordic51 52 设置静态密码的方法
?? 做个简单的记录。
基于NDK11做的,在nrf52板子上跑没问题。
Nordic主机、从机设置静态密码方式相同。
设置方法如下:
#define DEFAULT_PASS_KEY “123456”
static void device_manager_init(bool erase_bonds)
{
...
...
uint8_t passkey[] = DEFAULT_PASS_KEY;
//设置静态配对码
ble_opt_t m_static_pin_option;
m_static_pin_option.gap_opt.passkey.p_passkey= passkey;
err_code=sd_ble_opt_set(BLE_GAP_OPT_PASSKEY,&m_static_pin_option);
APP_ERROR_CHECK(err_code);
}
设置完毕,建立连接时,需要输入密码,如下:
static void on_ble_evt(ble_evt_t * p_ble_evt)
【nordic51|nordic51 52 设置静态密码的方法】{
。。。
。。。
case BLE_GAP_EVT_PASSKEY_DISPLAY://显示密码
NRF_LOG_PRINTF("[APPL]:Show passkey: ");
for ( int i = 0;
i < 6;
i++)
{
NRF_LOG_PRINTF("%c",p_ble_evt->evt.gap_evt.params.\
passkey_display.passkey[i]);
}
NRF_LOG_PRINTF("\n");
break;
case BLE_GAP_EVT_AUTH_KEY_REQUEST://回复密码,可以通过按键输入。这里直接回复静态密码
if (p_ble_evt->evt.gap_evt.params.auth_key_request.key_type == BLE_GAP_AUTH_KEY_TYPE_OOB)
{
err_code = sd_ble_gap_auth_key_reply(p_ble_evt->evt.gap_evt.conn_handle,
BLE_GAP_AUTH_KEY_TYPE_PASSKEY,
(const uint8_t *)DEFAULT_PASS_KEY);
}
break;
}
主机与从机设置的代码相同,把主机从机都这么设置就可以了。
推荐阅读
- 第6.2章(设置属性)
- 15、IDEA学习系列之其他设置(生成javadoc、缓存和索引的清理等)
- iOS,打Framework静态库
- performSelectorOnMainThread:withObject:waitUntilDone:参数设置为NO或YES的区别
- java静态代理模式
- Android|Android JNI之静态注册(android studio)
- spring|spring boot中设置异步请求默认使用的线程池
- Python绘制小红花
- day|day 28 设置路由表
- flutter设置沉浸式状态栏