ESP-IDF 例程——ESP-IDF 例程分析
ESP-IDF 例程分析总览
1. 概述
本文档汇总了ESP-IDF examples目录下各例程的分析结果,为开发团队提供快速查阅和参考。基于esp-idf 5.5.2例程总结。
2. 例程分类与汇总
get-started
| 例程名称 | 核心功能 | 详细文档路径 |
|---|---|---|
| hello_world | 验证开发环境,显示芯片信息 | 01.get_started > 1.1 hello_world 例程 |
| blink | 控制LED闪烁,支持普通GPIO和可寻址LED | 01.get_started > 1.2 blink 例程 |
lowpower
| 例程名称 | 核心功能 | 详细文档路径 |
|---|---|---|
| vbat | 演示ESP芯片在深度睡眠期间使用备用电池(VBAT)的功能 | 02.lowpower > 2.1 vbat |
cxx
| 例程名称 | 核心功能 | 详细文档路径 |
|---|---|---|
| exceptions | 演示C++异常处理功能 | 03.cxx > 3.1 exceptions 例程 |
| pthread | 演示C++线程与ESP-pthread配置的结合使用 | 03.cxx > 3.2 pthread 例程 |
| rtti | 演示C++运行时类型信息(RTTI)功能 | 03.cxx > 3.3 rtti 例程 |
custom_bootloader
| 例程名称 | 核心功能 | 详细文档路径 |
|---|---|---|
| bootloader_hooks | 向第二阶段引导加载程序添加钩子函数 | 04.custom_bootloader > 4.1 bootloader_hooks |
| bootloader_override | 完全覆盖ESP-IDF的第二阶段引导加载程序 | 04.custom_bootloader > 4.2 bootloader_override |
| bootloader_multiboot | 创建多引导加载程序,允许用户选择要运行的应用程序 | 04.custom_bootloader > 4.3 bootloader_multiboot |
| bootloader_extra_dir | 向引导加载程序构建添加自定义组件目录 | 04.custom_bootloader > 4.4 bootloader_extra_dir |
provisioning
| 例程名称 | 核心功能 | 详细文档路径 |
|---|---|---|
| wifi_prov_mgr | 使用wifi_provisioning管理器组件构建配网应用,支持BLE和SoftAP两种传输方式 | 05.provisioning > 5.1 wifi_prov_mgr |
build_system
| 例程名称 | 核心功能 | 详细文档路径 |
|---|---|---|
| wrappers | 使用链接器包装器重新定义IDF函数 | 06.build_system > 6.1 wrappers |
phy
| 例程名称 | 核心功能 | 详细文档路径 |
|---|---|---|
| antenna | 演示Wi-Fi天线软切换功能 | 07.phy > 7.1 antenna |
| cert_test | 提供Wi-Fi和Bluetooth认证测试功能 | 07.phy > 7.2 cert_test |
zigbee
| 例程名称 | 核心功能 | 详细文档路径 |
|---|---|---|
| Zigbee网关示例 | 构建Zigbee网关设备,连接Wi-Fi网络并通过UART与OT-RCP通信形成Zigbee网络 | 08.zigbee > 8.2 详细分析 |
| HA开/关灯泡示例 | 配置Zigbee终端设备,作为HA开/关灯泡,响应开关控制命令 | 08.zigbee > 8.2 详细分析 |
| HA开/关开关示例 | 配置Zigbee协调器,作为HA开/关开关,控制灯泡设备 | 08.zigbee > 8.2 详细分析 |
ieee802154
| 例程名称 | 核心功能 | 详细文档路径 |
|---|---|---|
| ieee802154_cli | 提供IEEE802.15.4命令行界面,用于管理和调试网络 | 09.ieee802154 > 9.1 ieee802154_cli |
mesh
| 例程名称 | 核心功能 | 详细文档路径 |
|---|---|---|
| internal_communication | 演示mesh网络设置、消息发送和接收,以及灯光控制应用 | 10.mesh > 10.1 internal_communication |
| ip_internal_network | 使用mesh创建支持IP的子网络,结合MQTT实现节点间通信 | 10.mesh > 10.2 ip_internal_network |
| manual_networking | 禁用ESP-MESH的自组织网络功能,手动为节点选择父节点 | 10.mesh > 10.3 manual_networking |
ethernet
| 例程名称 | 核心功能 | 详细文档路径 |
|---|---|---|
| basic | 以太网驱动的基本使用方法,包括内部EMAC和SPI以太网模块 | 11.ethernet > 11.1 basic |
| iperf | 使用iperf协议测试以太网的吞吐量和带宽 | 11.ethernet > 11.2 iperf |
| ptp | 使用PTP协议在以太网网络中实现高精度时间同步 | 11.ethernet > 11.3 ptp |
wifi
| 例程名称 | 核心功能 | 详细文档路径 |
|---|---|---|
| station | ESP32作为Wi-Fi客户端连接到外部AP | 12.wifi(WIP) > 12.1 station 例程 |
| softAP | ESP32作为Wi-Fi接入点 | 12.wifi(WIP) > 12.2 softAP 例程 |
| espnow | 实现设备间的无连接Wi-Fi通信 | 12.wifi(WIP) > 12.3 espnow 例程 |
| iperf | 测试Wi-Fi网络吞吐量 | 12.wifi(WIP) > 12.4 iperf 例程 |
| smart_config | 通过手机应用配置Wi-Fi连接 | 12.wifi(WIP) > 12.5 smart_config 例程 |
openthread
| 例程名称 | 核心功能 | 详细文档路径 |
|---|---|---|
| ot_cli | 提供OpenThread命令行界面,用于管理和调试Thread网络 | 13.openthread(WIP) > 13.1 ot_cli |
| ot_rcp | 实现OpenThread无线电协处理器,与主机配合工作 | 13.openthread(WIP) > 13.2 ot_rcp |
| ot_br | 实现OpenThread边界路由器,连接Thread网络和Wi-Fi/Ethernet网络 | 13.openthread(WIP) > 13.3 ot_br |
| ot_sleepy_device | 演示OpenThread休眠设备的实现,支持802.15.4无线电休眠 | 13.openthread(WIP) > 13.4 ot_sleepy_device |
| ot_trel**(WIP)** | 演示OpenThread Transparent Reliable Exchange Layer (TREL)功能 | 13.openthread(WIP) > 13.5 ot_trel |
storage
| 例程名称 | 核心功能 | 详细文档路径 |
|---|---|---|
| nvs/nvs_rw_value | 使用NVS读写键值对数据 | 14.storage(WIP) > 14.1 nvs/nvs_rw_value 例程 |
| fatfs/getting_started | 在SPI Flash上实现FAT文件系统 | 14.storage(WIP) > 14.2 fatfs/getting_started 例程 |
| littlefs | 使用LittleFS文件系统 | 14.storage(WIP) > 14.3 littlefs 例程 |
| spiffs | 使用SPIFFS文件系统 | 14.storage(WIP) > 14.4 spiffs 例程 |
| wear_levelling | 实现Flash的磨损均衡 | 14.storage(WIP) > 14.5 wear_levelling 例程 |
network
| 例程名称 | 核心功能 | 详细文档路径 |
|---|---|---|
| bridge | 使用LwIP IEEE 802.1D桥接功能连接多个网络接口 | 15.network > 15.1 bridge |
| eth2ap | 实现以太网和WiFi AP之间的数据包转发 | 15.network > 15.2 eth2ap |
| simple_sniffer | 捕获网络数据包并保存为pcap格式文件 | 15.network > 15.3 simple_sniffer |
| sta2eth | 将WiFi站连接转换为有线连接 | 15.network > 15.4 sta2eth |
| vlan_support | 在以太网接口上创建虚拟VLAN接口 | 15.network > 15.5 vlan_support |
protocols
| 例程名称 | 核心功能 | 详细文档路径 |
|---|---|---|
| mqtt/tcp | 使用ESP-MQTT库实现MQTT客户端,通过TCP连接到broker | 16.protocols(WIP) > 16.1 mqtt/tcp 例程 |
| http_request | 使用POSIX socket API实现简单的HTTP请求 | 16.protocols(WIP) > 16.2 http_request 例程 |
| sockets/tcp_client | 使用POSIX socket API实现TCP客户端 | 16.protocols(WIP) > 16.3 sockets/tcp_client 例程 |
| https_request | 使用ESP-IDF的HTTPS客户端API实现安全的HTTP请求 | 16.protocols(WIP) > 16.4 https_request 例程 |
| modbus/serial/mb_slave | 使用ESP-IDF的Modbus组件实现Modbus RTU从机 | 16.protocols(WIP) > 16.5 modbus/serial/mb_slave 例程 |
system
| 例程名称 | 核心功能 | 详细文档路径 |
|---|---|---|
| console/basic | 创建交互式命令行界面(CLI) | 17.system(WIP) > 17.1 console/basic 例程 |
| esp_timer | 演示高精度定时器功能 | 17.system(WIP) > 17.2 esp_timer 例程 |
| deep_sleep | 演示深度睡眠模式和各种唤醒源 | 17.system(WIP) > 17.3 deep_sleep 例程 |
| pthread | 演示POSIX线程的使用 | 17.system(WIP) > 17.4 pthread 例程 |
| ota/simple_ota_example | 演示OTA(Over-The-Air)升级功能 | 17.system(WIP) > 17.5 ota/simple_ota_example 例程 |
security
| 例程名称 | 核心功能 | 详细文档路径 |
|---|---|---|
| flash_encryption | 演示Flash加密功能,包括开发和发布模式 | 18.security > 18.1 flash_encryption |
| hmac_soft_jtag | 演示使用HMAC外设安全地重新启用软件禁用的JTAG接口 | 18.security > 18.2 hmac_soft_jtag |
| nvs_encryption_hmac | 演示使用基于HMAC的加密密钥保护方案进行NVS加密 | 18.security > 18.3 nvs_encryption_hmac |
| security_features_app | 演示如何同时启用多种安全功能,包括Secure Boot V2、Flash Encryption等 | 18.security > 18.4 security_features_app |
| tee_basic | 演示如何使用ESP-TEE框架在可信执行环境中执行安全服务 | 18.security > 18.5.1 tee_basic |
| tee_attestation | 演示如何使用ESP-TEE框架生成实体证明令牌 | 18.security > 18.5.2 tee_attestation |
| tee_secure_ota | 演示如何使用ESP-TEE框架进行安全OTA更新 | 18.security > 18.5.3 tee_secure_ota |
| tee_secure_storage | 演示如何使用ESP-TEE框架提供的安全存储功能 | 18.security > 18.5.4 tee_secure_storage |
bluetooth
| 例程名称 | 核心功能 | 详细文档路径 |
|---|---|---|
| blufi | 通过蓝牙配置Wi-Fi连接 | 19.bluetooth(WIP) > 19.1 blufi 例程 |
| a2dp_sink | 实现经典蓝牙A2DP接收器功能 | 19.bluetooth(WIP) > 19.2 a2dp_sink 例程(经典蓝牙) |
| esp_ble_mesh | 演示BLE Mesh网络的实现 | 19.bluetooth(WIP) > 19.3 esp_ble_mesh 例程 |
peripherals
| 例程名称 | 核心功能 | 详细文档路径 |
|---|---|---|
| gpio/generic_gpio | GPIO基本配置和中断使用 | 20.peripherals(WIP) > 20.1 gpio/generic_gpio 例程 |
| i2c/i2c_basic | I2C主机基本操作 | 20.peripherals(WIP) > 20.2 i2c/i2c_basic 例程 |
| ledc/ledc_basic | LED PWM控制器基本使用 | 20.peripherals(WIP) > 20.3 ledc/ledc_basic 例程 |
| rmt/led_strip | 使用RMT控制LED灯带 | 20.peripherals(WIP) > 20.4 rmt/led_strip 例程 |
| spi/spi_master | SPI主机基本操作 | 20.peripherals(WIP) > 20.5 spi/spi_master 例程 |
3. 使用指南
3.1 如何查找例程
- 根据功能需求选择相应的目录分类
- 在对应分类下找到所需的例程
- 点击详细文档路径查看完整分析
3.2 如何参考例程
- 阅读例程的核心功能说明,确认是否符合需求
- 查看主要调用的函数和模块,了解实现原理
- 参考输入输出参数说明,理解例程的使用方式
- 根据适用场景判断是否适合当前项目
4. 文档更新说明
本文档将持续更新,随着更多例程的分析完成,将不断添加到本总览中。
5. 联系方式
如有疑问或建议,请联系开发团队。
ESP-IDF 例程——ESP-IDF 例程分析
https://blog.zhaosn.top/ESP32-examples/00.overview/