轉載一篇博客,可以簡單瞭解協議棧各個層: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; //連接超時