在Zephyr ESP32 藍(lán)牙驅(qū)動簡析一文中簡要分析了esp32 藍(lán)牙如何集成進(jìn)Zephyr,本文接著說明如果在Zephyr內(nèi)使用ESP32藍(lán)牙。
在Zepher中使用ESP32藍(lán)牙比WIFI還要簡單只要基于esp32 board編譯的APP配置了CONFIG_BT=y就會默認(rèn)打開ESP32藍(lán)牙的配置CONFIG_BT_ESP32,詳細(xì)可見boardsxtensaesp32Kconfig.defconfig.
之后就直接使用zephyr提供的藍(lán)牙API進(jìn)行應(yīng)用編程即可。
本文不說明如何進(jìn)行藍(lán)牙編程,試跑一個Zephyr的藍(lán)牙例程eddystone,這是Google BLE Beacon,用于藍(lán)牙定位。
例程的配置文件如下
1
2
3
4
CONFIG_BT=y
CONFIG_BT_DEBUG_LOG=y
CONFIG_BT_PERIPHERAL=y
CONFIG_BT_DEVICE_NAME=“Zephyr Eddystone”
應(yīng)用主程序如下, 實際的各種流程都在bt_ready中展開
void main(void)
{
int err;
bt_conn_cb_register(&conn_callbacks);
k_work_init_delayable(&idle_work, idle_timeout);
/* Initialize the Bluetooth Subsystem */
err = bt_enable(bt_ready);
if (err) {
printk(“Bluetooth init failed (err %d)
”, err);
}
}
編譯并下載
1
2
west build -p -b esp32 zephyrproject/zephyr/samples/bluetooth/eddystone
west flash --esp-device /dev/ttyS11
運(yùn)行l(wèi)og如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
??*** Booting Zephyr OS build v2.6.0-rc1-300-g6ce0f2ee6606 ***
phy_version: 4500, 0cd6843, Sep 17 2020, 1507, 0, 2
Coex register schm btdm cb faild
Bluetooth initialized
Initial advertising as C457F8:DE (public)
Configuration mode: waiting connections.。。
[0000.911,000] 《dbg》 bt_hci_driver_esp32.hci_esp_host_rcv_pkt: Calling bt_recv(0x3fff4c28)
--- 98 messages dropped ---
[0000.911,000] 《inf》 bt_hci_core: Identity: C457F8:DE (public)
[0000.911,000] 《inf》 bt_hci_core: HCI: version 4.2 (0x08) revision 0x030e, manufacturer 0x0060
[0000.911,000] 《inf》 bt_hci_core: LMP: version 4.2 (0x08) subver 0x030e
[0000.911,000] 《dbg》 bt_hci_driver_esp32.bt_esp32_send: buf 0x3fff4c28 type 0 len 18
[0000.911,000] 《dbg》 bt_hci_driver_esp32: Final HCI buffer:
01 06 20 0f a0 00 f0 00 00 00 00 00 00 00 00 00 |。。 。。.。。 。。.。。.。。
00 07 00 |。。.
在手機(jī)上通過nrf connect可以看到”Zephyr Eddystone”
從上面可以看到zephyr上面使用ESP32藍(lán)牙完全可以不用關(guān)心驅(qū)動,是單純應(yīng)用層的編程。
編輯:jq
-
藍(lán)牙
+關(guān)注
關(guān)注
114文章
5866瀏覽量
171203 -
API
+關(guān)注
關(guān)注
2文章
1510瀏覽量
62392 -
編程
+關(guān)注
關(guān)注
88文章
3637瀏覽量
93980 -
Zephyr
+關(guān)注
關(guān)注
0文章
22瀏覽量
5998
原文標(biāo)題:Zephyr ESP32 藍(lán)牙試用
文章出處:【微信號:ZephyrProject,微信公眾號:ZephyrProject】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
【AI技術(shù)支持】ESP32-S3模組EspBleOTA搜索不到ble_ota例程的藍(lán)牙問題處理
![【AI技術(shù)支持】<b class='flag-5'>ESP32</b>-S3模組EspBleOTA搜索不到ble_ota例程的<b class='flag-5'>藍(lán)牙</b>問題處理](https://file.elecfans.com/web2/M00/45/DA/poYBAGKPGziABtawAAAYlXODTds073.jpg)
esp32和esp8266代碼共用嗎
esp8266和esp32區(qū)別是什么
esp32用什么軟件編程
ESP32-WROOM-32E、ESP32-WROOM-32D、ESP32-WROOM-32U 有什么區(qū)別?ESP32-WROOM-32 后綴字母代表的意思是?
![<b class='flag-5'>ESP32</b>-WROOM-32E、<b class='flag-5'>ESP32</b>-WROOM-32D、<b class='flag-5'>ESP32</b>-WROOM-32U 有什么區(qū)別?<b class='flag-5'>ESP32</b>-WROOM-32 后綴字母代表的意思是?](https://file1.elecfans.com/web2/M00/FC/EE/wKgZomaXJ0yAaZphAAP843IV7L8438.png)
請問ESP32-S3藍(lán)牙是否支持SPP?
請問ESP32如何讀取周圍藍(lán)牙廣播的數(shù)據(jù)?
esp32支持經(jīng)典藍(lán)牙嗎?
ESP32-S3進(jìn)入deep sleep后功耗過高怎么解決?
請問esp32之間的藍(lán)牙連接與esp32與手機(jī)的藍(lán)牙連接有什么區(qū)別?
基于ESP32開發(fā)的工業(yè)級2.4GHz WiFi藍(lán)牙模塊方案
嵌入式領(lǐng)域的未來之爭,ESP32與STM32誰將勝出?
學(xué)習(xí)單片機(jī)ESP32與STM32,該如何選擇?
![學(xué)習(xí)單片機(jī)<b class='flag-5'>ESP32</b>與STM32,該如何選擇?](https://file1.elecfans.com/web2/M00/C3/5C/wKgZomXqvnmAUIMLAAAK548VuRI717.png)
評論