在Zephyr ESP32 蓝牙驱动简析一文中简要分析了esp32 蓝牙如何集成进Zephyr,本文接着说明如果在Zephyr内使用ESP32蓝牙。
在Zepher中使用ESP32蓝牙比WIFI还要简单只要基于esp32 board编译的APP配置了CONFIG_BT=y就会默认打开ESP32蓝牙的配置CONFIG_BT_ESP32,详细可见boardsxtensaesp32Kconfig.defconfig.
之后就直接使用zephyr提供的蓝牙API进行应用编程即可。
本文不说明如何进行蓝牙编程,试跑一个Zephyr的蓝牙例程eddystone,这是Google BLE Beacon,用于蓝牙定位。
例程的配置文件如下
1
2
3
4
CONFIG_BT=y
CONFIG_BT_DEBUG_LOG=y
CONFIG_BT_PERIPHERAL=y
CONFIG_BT_DEVICE_NAME=“Zephyr Eddystone”
应用主程序如下, 实际的各种流程都在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
运行log如下:
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 |。。.
在手机上通过nrf connect可以看到”Zephyr Eddystone”
从上面可以看到zephyr上面使用ESP32蓝牙完全可以不用关心驱动,是单纯应用层的编程。
编辑:jq
-
蓝牙
+关注
关注
119文章
6226浏览量
177568 -
API
+关注
关注
2文章
2158浏览量
66250 -
编程
+关注
关注
90文章
3708浏览量
96768 -
Zephyr
+关注
关注
0文章
47浏览量
6514
原文标题:Zephyr ESP32 蓝牙试用
文章出处:【微信号:ZephyrProject,微信公众号:ZephyrProject】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
如何备份复制拷贝出ESP32/8266内的固件程序
乐鑫ESP32-C6和ESP32-C61究竟该如何选择?一文读懂本质区别
如果在WL_REG_ON/BT_REG_ON为低时输入PCIe REFCLK,会有什么问题吗?
STM32和ESP32应该学哪个
THS1209扫描工作模式下,如果在第一个CONV_CLK周期进行读操作,读出的数据虽然无效,但是否是允许的?
THS1209如果在第一个CONV_CLK 周期进行读操作,读出的数据虽然无效,但是否是允许的?
如果在ldc1000evm上只更换电容,我并联了一个0.1微法的电容,在GUI上如何设置参数?
【AI技术支持】ESP32-S3模组EspBleOTA搜索不到ble_ota例程的蓝牙问题处理

如果在Zephyr内如何使用ESP32蓝牙
评论