ESP-IDF 开发
本章节包含以下部分,请按需阅读:
ESP-IDF 入门教程
初次接触 ESP32 ESP-IDF 开发,想要快速上手?我们为您准备了一套通用的 入门教程。
- 第0节 认识 ESP32
- 第1节 搭建环境
- 第2节 运行实例
- 第3节 创建项目
- 第4节 使用组件
- 第5节 调试程序
- 第6节 FreeRTOS
- 第7节 驱动外设
- 第8节 Wi-Fi 编程
- 第9节 BLE 编程
请注意:该教程使用 ESP32-S3-Zero 作为教学示例,所有硬件代码均基于其引脚布局。在动手实践前,建议您对照手中的开发板引脚图,确认引脚配置无误。
配置 ESP-IDF 开发环境
注意:ESP-IDF 从 V5.1 版本后才开始支持 ESP32-H2。安装 ESP-IDF 时需选择 V5.1 以上版本。
以下内容以 Windows 系统为例,使用 VS Code + ESP-IDF 扩展 的方式进行开发。Mac/Linux 用户请参考 官方说明。
安装 ESP-IDF 开发环境
-
前往 ESP-IDF Installation Manager 下载 ESP-IDF 安装管理器。这是乐鑫最新推出的跨平台安装工具,下文将演示如何使用其离线安装功能。
在页面中点击 Offline Installer 标签,然后在筛选栏中选择 Windows 操作系统和你要安装的版本。

确认选择无误后,点击下载按钮。浏览器将自动同时下载两个文件:一个是 ESP-IDF 离线整合包(.zst),另一个是 ESP-IDF 安装器(.exe)。

请耐心等待两个文件下载完成。
-
下载完成后,双击运行 ESP-IDF 安装器(eim-gui-windows-x64.exe)。
启动后,可在右上角将界面语言切换为中文。

安装工具会自动检测同一目录下是否存在离线整合包。点击 从存档安装。

接下来,选择安装路径。建议使用默认路径;若需自定义,请确保路径中不包含中文或空格。确认无误后,点击 开始安装。

-
当看到如下界面时,表示 ESP-IDF 已安装成功。

-
建议同时安装驱动程序。点击 完成安装,然后点击 安装驱动程序。

安装 Visual Studio Code 与 ESP-IDF 扩展
-
下载并安装 Visual Studio Code。
-
安装时建议勾选 通过 Code 打开操作添加到 Windows 资源管理器文件上下文菜单,以便快速打开项目文件夹。
-
在 VS Code 中,点击侧边活动栏中的
扩展图标(或使用快捷键 Ctrl + Shift + X)打开 扩展 视图。
-
在搜索框中输入 ESP-IDF,找到 ESP-IDF 扩展并点击安装。

-
当 ESP-IDF 扩展版本 ≥ 2.0 时,扩展会自动检测并识别上述步骤中安装的 ESP-IDF 环境,无需手动配置。
运行乐鑫官方示例程序
请参考 微雪 ESP-IDF 入门教程 - 第 2 节 运行示例。
Hello Word
- 官方示例路径:get-started -> hello_world
- 示例效果:在 TERMINAL 窗口以 10 秒间隔输出 Hello world!
软件操作
-
根据上方教程创建官方示例 hello_world
-
程序兼容 ESP32-H2,无需修改程序内容即可使用
-
修改好 COM 口及驱动对象 (建议优先使用 USB 对应的 COM 口,可通过设备管理器查看),点击编译并烧录即可运行程序

GPIO
- 官方示例路径:peripherals -> gpio -> generic_gpio
- 示例效果:LED 以 1 秒间隔进行闪烁
硬件连接
| ESP32-H2 | LED |
|---|---|
| GPIO18(或 GPIO19) | LED+ |
| GND | LED- |
软件操作
-
根据上方教程创建官方示例 generic_gpio
-
程序兼容 ESP32-H2,无需修改程序内容即可使用
-
修改好 COM 口及驱动对象 (建议优先使用 USB 对应的 COM 口,可通过设备管理器查看),点击编译并烧录即可运行程序

-
进入程序宏定义位置,查看实际处理的 GPIO

-
右键,进入 GPIO 定义位置

-
实际处理的 GPIO 为 GPIO8、GPIO9

RGB
- 官方示例路径:get-started -> blink
- 示例效果:板载 RGB 灯珠以 1 秒间隔进行闪烁
软件操作
-
根据上方教程创建官方示例 blink
-
程序兼容 ESP32-H2,无需修改程序内容即可使用
-
修改好 COM 口及驱动对象 (建议优先使用 USB 对应的 COM 口,可通过设备管理器查看),点击编译并烧录即可运行程序

UART
- 官方示例路径:peripherals -> uart-> uart_async_rxtxtasks
- 示例效果:短接 GPIO4 与 GPIO5 情况下进行 UART 的数据自收发
硬件连接
| ESP32-H2 | ESP32-H2(同一块) |
|---|---|
| GPIO4 | GPIO5 |
软件操作
-
根据上方教程创建官方示例 uart_async_rxtxtasks
-
程序兼容 ESP32-H2,无需修改程序内容即可使用
-
修改好 COM 口及驱动对象 (建议优先使用 USB 对应的 COM 口,可通过设备管理器查看),点击编译并烧录即可运行程序

-
根据使用的 GPIO 进行硬件连接

-
可转到定义文件中查看实际使用的 GPIO(选中 GPIO_NUM_4 -> 右键 -> Go to Definition)

I2C
- 官方示例路径:peripherals -> lcd-> i2c_oled
- 示例效果:点亮 0.96inch OLED (A),显示一段字符
硬件连接
| 0.96inch OLED (A) | ESP32-H2 |
|---|---|
| VCC | 3V3 |
| GND | GND |
| DIN | GPIO3 |
| CLK | GPIO4 |
| CS | GND |
| D/C | GND |
| RES | GPIO9 |
软件操作
-
根据上方教程创建官方示例 i2c_oled
-
修改程序使之兼容 0.96inch OLED (A)

-
适配 0.96inch OLED (A),定义 RES 引脚为 GPIO9

-
修改好 COM 口及驱动对象(建议优先使用 USB 对应的 COM 口,可通过设备管理器查看),点击编译并烧录即可运行程序

-
效果如下

-
可查看实际使用的 GPIO

SPI
- 官方示例路径:peripherals -> spi_master-> lcd
- 示例效果:在 2.4inch LCD Module 上动态显示图片
硬件连接
| 2.4inch LCD Module | ESP32-H2 |
|---|---|
| VCC | 3V3 |
| GND | GND |
| DIN | GPIO5 |
| CLK | GPIO4 |
| CS | GPIO1 |
| D/C | GPIO10 |
| RES | GPIO11 |
| BL | GPIO12 |
软件操作
-
右键 VScode 图标,以管理员身份运行 VScode

-
根据上方教程创建官方示例 lcd
-
修改程序使之兼容 2.4inch LCD Module

-
跳转到定义位置

-
当前使用的为 ESP32-H2, 屏蔽其他芯片定义

-
并宏定义 ESP32-H2 , CONFIG_IDF_TARGET_ESP32H2

-
等待读取 ID

-
添加读取延时,防止读取失败

-
修改背光

-
改为 gpio_set_level(PIN_NUM_BCKL, 1);

-
修改好 COM 口及驱动对象(建议优先使用 USB 对应的 COM 口,可通过设备管理器查看),点击编译并烧录即可运行程序

-
效果如下

Bluetooth
- 官方示例路径:bluetooth -> bluedroid -> ble -> gatt_server
- 示例效果:ESP32-H2 与手机端蓝牙调试助手进行数据传输
软件操作
-
在手机端安装蓝牙调试助手
-
根据上方教程创建官方示例 gatt_server
-
程序兼容 ESP32-H2,无需修改程序内容即可使用
-
蓝牙名称以及 UUID,蓝牙名称为 ESP_GATTS_DEMO

-
修改好 COM 口及驱动对象(建议优先使用 USB 对应的 COM 口,可通过设备管理器查看),点击编译并烧录即可运行程序

-
在手机端连接 ESP_GATTS_DEMO 蓝牙设备

-
连接成功效果如下

-
根据程序中 UUID 的值可知为下方两个服务器,选择其中一个进行上行发送

-
ESP32-H2 接收到数据

Zigbee
- 官方示例 1 路径:Zigbee-> light_sample-> HA_on_off_switch
- 官方示例 2 路径:Zigbee-> light_sample-> HA_on_off_light
- 示例效果:两块 ESP32-H2,使用其中一块(烧录 HA_on_off_switch 程序)的 BOOT 按键控制另一块的 RGB 灯珠的亮灭
注:请先往一块烧录 HA_on_off_switch 程序,再往另一块烧录 HA_on_off_light 程序
软件操作 1
-
根据上方教程创建官方示例 HA_on_off_switch
-
程序兼容 ESP32-H2,无需修改程序内容即可使用
-
修改好 COM 口及驱动对象 (请使用 UART 对应的 COM 口,可通过设备管理器查看) ,点击编译并烧录即可运行程序

软件操作 2
-
根据上方教程创建官方示例 HA_on_off_light
-
程序兼容 ESP32-H2,无需修改程序内容即可使用
-
修改好 COM 口及驱动对象 (请使用 UART 对应的 COM 口),点击编译并烧录即可运行程序 (需要等待片刻,让两块芯片建立连接)

-
连接成功,对应的按键程序和 LED 程序会打印相关数据

-
若出现初始化失败的情况,则可能是由于这个设备有残留的其他网络信息,可以擦除设备信息,再重新组网。
擦除设备 Flash
-
解压软件资源包(Flash 调试软件)
-
打开 flash_download_tool_3.9.5.exe 软件,选择 ESP32-H2 及 UART

-
选择 UART 的端口号,点击 START (不选择任何 bin 文件)

-
等待烧录完成,点击擦除

-
等待擦除完成
