转载一篇博客,可以简单了解协议栈各个层:https://blog.csdn.net/shunfa888/article/details/80140475
在协议栈的“gap_params_init”函数里面,我们可以设置一下参数
1、蓝牙连接的安全模式与名字
//以下是安全模式设置的宏定义
BLE_GAP_CONN_SEC_MODE_SET_OPEN(&sec_mode);
//以下是器件名字的设定
err_code = sd_ble_gap_device_name_set(&sec_mode,
(const uint8_t *)DEVICE_NAME,
strlen(DEVICE_NAME));
//可以在协议栈广播初始化中设置显示器件的全名还是短名
//init.advdata.name_type= BLE_ADVDATA_FULL_NAME
//获取器件名字可用以下办法
uint8_t shortmane[35];
uint16_t mane_long=35;
err_code=sd_ble_gap_device_name_get(shortmane,&mane_long);
2、图标设置
//这个图标,当使用手机->设置->蓝牙SCAN的时候。会显示出来
//NORDIC的连接工具并不显示这个图标,但是蓝牙信息的appearance会显示对应的名称
err_code = sd_ble_gap_appearance_set(BLE_APPEARANCE_HID_KEYBOARD);
APP_ERROR_CHECK(err_code);
//需要注意的是,要在广播设置中打开图标
init.advdata.include_appearance = true;//是否需要图标
3、连接参数的设定
//连接间隔为通讯一次的间隔,间隔大省电,但是实时性不够
//潜伏期为从机在连接时,跳过通讯的次数。这样可以降低从机功耗
gap_conn_params.min_conn_interval = MIN_CONN_INTERVAL; //最小链接间隔
gap_conn_params.max_conn_interval = MAX_CONN_INTERVAL; //最大链接间隔
gap_conn_params.slave_latency = SLAVE_LATENCY; //连接潜伏期,指从机跳过连接事件的次数
gap_conn_params.conn_sup_timeout = CONN_SUP_TIMEOUT; //连接超时