藍牙棧bluedroid stack包括了BT和BLE使用的基本的define和API
初始化藍牙棧以后并不能直接使用藍牙功能,
還需要用FSM管理藍牙連接情況
*/
ret = esp_bluedroid_init();
if (ret) {
ESP_LOGE(GATTC_TAG, '%s init bluetooth failed: %sn', __func__, esp_err_to_name(ret));
return;
}
//使能藍牙棧
ret = esp_bluedroid_enable();
if (ret) {
ESP_LOGE(GATTC_TAG, '%s enable bluetooth failed: %sn', __func__, esp_err_to_name(ret));
return;
}
//獲取藍牙地址
BLUFI_INFO('BD ADDR: 'ESP_BD_ADDR_STR'n', ESP_BD_ADDR_HEX(esp_bt_dev_get_address()));
//獲取blufi版本號
BLUFI_INFO('BLUFI VERSION %04xn', esp_blufi_get_version());
//建立藍牙的FSM(有限狀態機)
//這里使用回調函數來控制每個狀態下的響應,需要將其在GAP層的回調函數注冊
/*esp_gap_cb處理藍牙棧可能發生的所有情況,達到FSM的效果*/
ret = esp_ble_gap_register_callback(example_gap_event_handler);
if(ret){
BLUFI_ERROR('%s gap register failed, error code = %xn', __func__, ret);
return;
}
ret = esp_blufi_register_callbacks(&example_callbacks);
if(ret){
BLUFI_ERROR('%s blufi register failed, error code = %xn', __func__, ret);
return;
}
esp_blufi_profile_init();}
五、Station模式配置示例
給模組上電,可通過串口工具看到如下打印:
打開手機上的 EspBlufi app,在 app 界面下拉刷新,可以看到周圍的藍牙設備,如下圖所示:
安卓APP安裝:https://github.com/EspressifApp/EspBlufiForAndroid/releases
在刷新后界面顯示的?系列藍牙設備中,點擊 ESP32 模組,跳轉到設備界?,點擊連接,進行藍牙連接。如果連接成功,則會出現如下頁面,此時可點擊配網按鈕。
點擊配網按鈕,進?配網界面。如圖所示:
點擊確定按鈕進行配網,如果配網成功,則會出現如下界面,且下方紅字將顯示配置完成后 Wi-Fi 模式 的 Station 連接信息,包括 AP 的 BSSID 和 SSID 信息,以及連接狀態等。
同時,串口工具會打印如下信息:
上一篇:ESP32學習筆記(37)——搭建ESP-ADF(樂鑫音頻開發框架)
下一篇:ESP32學習筆記(35)——藍牙MAC地址
推薦閱讀最新更新時間:2025-06-06 22:29
設計資源 培訓 開發板 精華推薦
- LTC3406ES5 單節鋰離子 1.2V/600mA 穩壓器的典型應用電路,用于實現高效率和小尺寸
- 具有浪涌保護和反向保護的 LTC3897HFE 24V/10A 2 相同步升壓轉換器的典型應用電路
- ADR391B 2.5 Vout 微功率、低噪聲精密電壓基準的典型應用
- 使用 ON Semiconductor 的 STK672-050 的參考設計
- 光控延時開
- LT1021BMH-5 2 極低通濾波電壓基準的典型應用
- ESP8266名片
- 仿制反客科技STM32H750VBT6核心板
- USB電壓電流表-MSP430
- FEBFAN6100QMPX-CH07U15A-GEVB:EVB FAN6100Q