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 开发环境
ESP32-P4-WIFI6-DB 仓库中的 ESP-IDF BSP 和 brookesia_test 要求 ESP-IDF >=5.5,
10_wifi_antenna_tesat 要求 ESP-IDF >=6.0。这是组件清单声明的版本约束,依赖组件可能提出
额外要求,具体示例的组件和配置要求以对应示例目录中的 README 为准。
以下内容以 Windows 系统为例,使用 VS Code + ESP-IDF 扩展 的方式进行开发。Mac/Linux 用户请参考 官方说明。
此部分图示以安装 ESP-IDF V5.5.2 为例示范,安装时请选用与您开发板示例匹配的 ESP-IDF 版本。
安装 ESP-IDF 开发环境
-
前往 ESP-IDF Installation Manager 下载 ESP-IDF 安装管理器。这是乐鑫最新推出的跨平台安装工具,下文将演示如何使用其离线安装功能。
在页面中点击 Offline Installer 标签,然后在筛选栏中选择 Windows 操作系统和你需要的 ESP-IDF 版本(图示仅为参考,请以实际为准)。

确认选择无误后,点击下载按钮。浏览器将自动同时下载两个文件:一个是 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 环境,无需手动配置。
ESP32-P4-WIFI6-DB 示例仓库
ESP32-P4-WIFI6-DB 的 ESP-IDF BSP 和示例程序在 ESP32-P4-WIFI6-DB 示例仓库 中维护。可在该仓库中获取 对应的板级代码和示例程序。
仓库中的相关目录如下:
firmware/esp32_p4_wifi6_db/:ESP-IDF BSP、头文件、Kconfig 和组件清单。examples/esp_idf/:外设示例和 Brookesia 应用。firmware/factory-firmware/:5、7、8、10.1 英寸面板的 ESP32-P4 固件,以及 ESP32-C5 从机固件。- ESP32-P4-WIFI6-DB 原理图。
示例工程的目标芯片为 esp32p4。
快速运行
以下命令以 00_board_check 示例为例。将命令行当前目录切换到示例目录后执行,COMx 替换为
ESP32-P4 的实际串口:
cd examples/esp_idf/00_board_check
idf.py set-target esp32p4
idf.py build
idf.py -p COMx flash monitor
显示、摄像头和 Wi-Fi 相关示例在构建前还需要通过 idf.py menuconfig 选择实际连接的 LCD 面板和
填写 Wi-Fi 凭据。组件管理器会在配置阶段解析依赖。
LCD 面板选择
BSP 通过以下选项选择 LCD 面板:
| BSP 选项 | 面板控制器 | 分辨率 |
|---|---|---|
CONFIG_BSP_LCD_TYPE_720_1280_5_INCH_A | HX8394,5 英寸 | 720 × 1280 |
CONFIG_BSP_LCD_TYPE_720_1280_7_INCH_A | ILI9881C,7 英寸 | 720 × 1280 |
CONFIG_BSP_LCD_TYPE_800_1280_8_INCH_A | JD9365,8 英寸 | 800 × 1280 |
CONFIG_BSP_LCD_TYPE_800_1280_10_1_INCH_A | JD9365,10.1 英寸 | 800 × 1280 |
BSP Kconfig 默认选择 10.1 英寸 JD9365,brookesia_test 的默认配置选择 8 英寸 JD9365。构建前
应选择实际连接的面板。默认配置不会覆盖已有的 sdkconfig;确认实际生效的选项时,检查工程配置和
生成的 build/config/sdkconfig.h。
推荐验证顺序
建议按以下顺序运行示例,先确认板级外设,再验证显示、网络和其他功能:
00_board_check:板级外设检查。02_i2c_console_test:I2C 总线检查。03_sdmmc_test:SDMMC 检查。04_mipi_dsi_test:显示屏测试。06_wifi_test:Wi-Fi Station 测试。
ESP-IDF 示例索引
| 示例目录 | 示例内容 |
|---|---|
00_board_check | 输出芯片、Flash、PSRAM、堆内存信息和周期心跳 |
01_gpio_input_test | 在 LCD 上显示 GPIO 输入状态 |
02_i2c_console_test | 交互式 I2C 扫描及寄存器读写控制台 |
03_sdmmc_test | microSD 文件写入、读取和重命名测试 |
04_mipi_dsi_test | LCD 输出测试,当前显示纯白屏 |
05_mipi_csi_test | 使用 PPA 处理并在 LCD 上预览摄像头画面 |
06_wifi_test | Wi-Fi Station 联网和网关 ping |
07_i2s_codec | ES8311 内置音频播放或麦克风回放 |
08_usb_host_msc | USB 大容量存储文件操作和顺序读写速度测试 |
09_bt_controller_mac_addr | Hosted 蓝牙 MAC 查看 / 配置及 BLE GATT 测试 |
10_wifi_antenna_tesat | Wi-Fi 扫描、STA 联网、频段和 RSSI 日志 |
brookesia_test | 包含计算器、画板、音频、摄像头、视频、设置、Xiaozhi 和 GPIO 应用的综合界面 |
10_wifi_antenna_tesat 为仓库当前的目录拼写。接线和操作方法以各示例目录中的 README 及配置为准。
运行前检查
- 板卡通过 ESP32-C5 无线协处理器和 ESP-Hosted/SDIO 实现无线功能。ESP32-C5 需要兼容的 ESP-Hosted 从机固件;烧录 ESP32-P4 示例不会更新 ESP32-C5。
- I2C 总线使用 GPIO7(SDA)和 GPIO8(SCL),连接 ES8311、GT911、LCD 背光控制器和摄像头 SCCB 总线。
- ES8311 的 I2S 信号使用 GPIO13、GPIO12、GPIO10、GPIO9 和 GPIO11,功放使能使用 GPIO53。
- microSD 使用 4-bit SDMMC,卡电源使能为 GPIO45(低有效),SDMMC IO 供电使用 LDO 通道 4。
- LCD 背光通过共享 I2C 总线的
0x45设备、亮度寄存器0x96控制;GT911 使用轮询方式。 - ESP-Hosted/SDIO 使用 GPIO18、GPIO19、GPIO14、GPIO15、GPIO16、GPIO17 和 GPIO54。
- 具体示例的组件版本、配置要求和硬件连接方式,以对应示例目录中的 README 及板卡硬件资料为准。构建、 烧录和运行结果需要针对所选示例、ESP-IDF 版本和实际面板分别确认。