STM32+ESP32-C3 ble蓝牙开发
一、蓝牙的基本介绍
蓝牙协议包括两种技术:BR(Basic Rate)和LE(Low Energy)。
这两种技术都包括搜索(discovery)管理、连接(connection)管理等机制,但它们是相互独立的,不能互通的技术!
1)经典蓝牙(BR/EDR和AMP)
BR:Basic Rate,可以包括可选的EDR(Enhanced Data Rate)技术,以及AMP(Alternate MAC and PHY layer extension)。
BR:最早期的蓝牙技术,速度只能达到721.2Kbps。·EDR:随着技术的提升,使用EDR技术的蓝牙,理论速率可以达到2.1Mbps。
AMP:使用AMP技术的蓝牙,理论速率可以达到54Mbps。蓝牙自身的物理层和AMP技术差异明显,BR/EDR和AMP是不能同时使用的。简单的说,就是:BR和EDR是可以同时存在的,但BR/EDR和AMP只能二选一。
2)低功耗蓝牙(BLE)
上面所讲的BR技术的进化路线,就是传输速率的加快、加快、再加快。但能量是守恒的,你想传得更快,代价就是消耗更多的能量。而有很多的应用场景,并不关心传输速率,反而非常关心功耗。这就是Bluetooth LE(称作蓝牙低功耗)产生的背景。
低功耗蓝牙与经典蓝牙使用相同的2.4GHz无线电频率,因此双模设备可以共享同一个天线。低功耗蓝牙使用的调制系统更简单。BLE技术相比BR技术,差异非常大,或者说就是两种不同的技术,凑巧都加一个“蓝牙”的前缀而已。目前BLE主要广泛应用于IoT(Internet of Things:物联网)产品领域。
二、固件烧录
可以参考上篇关于wifi的配置内容,不在重复。
三、指令发送
1. 蓝牙初始化
- 指令:
AT+BLEINIT=2 - 作用:初始化ESP32的蓝牙功能,设置为服务端角色(server role)
2. 创建GATT服务
- 指令:
AT+BLEGATTSSRVCRE - 作用:在服务端创建GATT服务
3. 启动GATT服务
- 指令:
AT+BLEGATTSSRVSTART - 作用:启动已创建的GATT服务
4. 设置设备名称
- 指令:
AT+BLENAME="ljz-bt" - 作用:设置蓝牙设备名称为"ljz-bt"
5. 设置广播参数
- 指令:
AT+BLEADVPARAM=50,50,0,0,7,0,, - 作用:配置蓝牙广播参数,包括广播间隔、类型、地址类型和信道等
6. 设置广播数据
- 指令:
AT+BLEADVDATAEX="ljz-bt","A123","0102030405",1 - 作用:设置广播数据,包括设备名称、UUID和服务数据等
7. 开始广播
- 指令:
AT+BLEADVSTART - 作用:启动蓝牙广播,使其他设备能够发现本设备
8. 配置SPP透传
- 指令:
AT+BLESPPCFG=1,1,7,1,5 - 作用:配置蓝牙串口透传模式,指定用于读写的特征值
9. 设置系统消息
- 指令:
AT+SYSMSG=4 - 作用:启用系统消息提示,在透传模式下状态改变时会打印提示信息
10. 启动透传模式
- 指令:
AT+BLESPP - 作用:当有客户端连接时,启动蓝牙串口透传模式进行数据传输
11. 设置特征值
- 指令格式:
AT+BLECHARSETVAL=<conn_index>,<srv_index>,<char_index>,<value> - 作用:设置特定连接、服务和特征的值,用于向客户端发送通知或响应读请求
四、调试
调试的话,在手机端安装一个蓝牙助手,搜索后可以看到设备的蓝牙信息。
接收蓝牙助手发送的数据,设备将接收到的数据进行返回。


- 本文标签: 其他
- 本文链接: https://lijunze.me/article/10
- 版权声明: 本文由泽原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权