开始前适用开发板:ESP32-P4 + ESP32-C5 · 开发框架:ESP-IDF
适用开发板:P4C5 · 工程
02.beginner.ble_spp_server· targetesp32p4
学习时长:约 20 分钟 · 难度:★★★☆☆
学习目标
完成本节后,你将能够:
- 理解 P4C5 的 BLE 由 C5 协处理器提供的架构
- 掌握 BLE GATT SPP 透传的使用方式
1. 这个例子在干嘛
功能与 Korvo ble_spp_server 相同——BLE SPP 服务端,手机连接后双向收发数据。关键区别:BLE 由 C5 提供,广播名 KSDIY_BLE_SPP,MIPI 大屏显示连接状态。
C5 注意:BLE 广播由 C5 发出,需等 C5 就绪后手机才能搜到。
ESP32-P4 → SDIO/hosted → C5 → BLE 广播
↕ GATT 通信
手机 nRF Connect
2. 编译烧录
cd P4_C5_4.3_Firmware\02.beginner.ble_spp_server
idf.py set-target esp32p4
idf.py build flash monitor
3. 使用步骤
- 等 C5 就绪(10~20 秒)
- 手机 nRF Connect 搜索
KSDIY_BLE_SPP - 连接 → 展开 SPP Service(0xABF0)
- 开启 0xABF2 Notify → 发送数据到 0xABF1
4. 与 Korvo 版的区别
| 对比 | Korvo | P4C5 |
|---|---|---|
| BLE 芯片 | S3 内置 | C5 外置 |
| 协议栈 | Bluedroid | NimBLE(通过 C5) |
| 广播名 | ESP_SPP_SERVER | KSDIY_BLE_SPP |
| GATT UUID | 0xABF0 系列 | 相同 |
| 屏幕 | SPI 小屏 | MIPI 大屏 |
5. 常见问题与排查
| 现象 | 可能原因 | 解决方案 |
|---|---|---|
| 搜不到 | C5 未就绪 | 等 20 秒 |
| 搜不到 | 已被其他手机连接 | BLE 一对一 |
| 无数据 | 未开启 Notify | 点击 0xABF2 的 Notify |
| 数据乱码 | 编码不一致 | 确认 UTF-8 |
详细 GATT 结构、代码流程、知识延伸参见 Korvo BLE SPP。
6. 下一步
| 方向 | 推荐例程 | 说明 |
|---|---|---|
| Wi-Fi Station | Wi-Fi Station | 联网 |
| USB CDC | USB CDC | 另一种数据通道 |
| 详细原理 | Korvo BLE SPP | 完整 GATT 讲解 |
酷世DIY · Kevincoooool