mirror of
https://github.com/espressif/esp-idf.git
synced 2026-04-27 19:13:21 +00:00
4.8 KiB
4.8 KiB
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-H4 | ESP32-S3 |
|---|
ESP-IDF GATT SERVER SPP Example
For description of this application please refer to ESP-IDF GATT CLIENT SPP Example
Flow Diagram
SPP Server SPP Client
┌───────────┐ ┌───────────┐
│ UART │ │ UART │
│ Terminal │ │ Terminal │
└─────┬─────┘ └─────┬─────┘
│ │
│ ─────────── Initialization ─────────── │
│ │
│ 1. Create SPP Service (UUID: 0xABF0) │
│ 2. Add Characteristics │
│ 3. Start Advertising │
│ │
│ ─────────── Connection ─────────── │
│ │
│ Scan & Connect │
│ <─────────────────────────────────────────────────── │
│ │
│ Connection Established │
│ ─────────────────────────────────────────────────────>│
│ │
│ ─────────── Data Exchange ─────────── │
│ │
│ UART Input ──> Notification (SPP_DATA_NOTIFY_CHAR) │
│ ─────────────────────────────────────────────────────>│──> UART Output
│ │
│ UART Output <── WriteNoRsp (SPP_DATA_RECV_CHAR) │
│ <─────────────────────────────────────────────────── │<── UART Input
│ │
┌─────┴─────┐ ┌─────┴─────┐
│SPP Server │ │ SPP Client│
└───────────┘ └───────────┘
How to Use Example
Before project configuration and build, be sure to set the correct chip target using:
idf.py set-target <chip_name>
Hardware Required
- A development board with ESP32/ESP32-C3/ESP32-S3/ESP32-C2/ESP32-H2 SoC (e.g., ESP32-DevKitC, ESP-WROVER-KIT, etc.)
- A USB cable for Power supply and programming
See Development Boards for more information about it.
Build and Flash
Run idf.py -p PORT flash monitor to build, flash and monitor the project.
(To exit the serial monitor, type Ctrl-].)
See the Getting Started Guide for full steps to configure and use ESP-IDF to build projects.
Example Output
I (4452) GATTS_SPP_DEMO: EVT 14, gatts if 3
I (4452) GATTS_SPP_DEMO: event = e
I (5022) GATTS_SPP_DEMO: EVT 4, gatts if 3
I (5022) GATTS_SPP_DEMO: event = 4
I (5152) GATTS_SPP_DEMO: EVT 2, gatts if 3
I (5152) GATTS_SPP_DEMO: event = 2
I (5152) GATTS_SPP_DEMO: ESP_GATTS_WRITE_EVT : handle = 5
I (5242) GATTS_SPP_DEMO: EVT 2, gatts if 3
I (5242) GATTS_SPP_DEMO: event = 2
I (5242) GATTS_SPP_DEMO: ESP_GATTS_WRITE_EVT : handle = 10
I (18462) GATTS_SPP_DEMO: EVT 5, gatts if 3
I (18462) GATTS_SPP_DEMO: event = 5
I (27652) GATTS_SPP_DEMO: EVT 2, gatts if 3
I (27652) GATTS_SPP_DEMO: event = 2
I (27652) GATTS_SPP_DEMO: ESP_GATTS_WRITE_EVT : handle = 2
Troubleshooting
For any technical queries, please open an issue on GitHub. We will get back to you soon.