跳到主要内容

ESP-IDF 开发

本章节包含以下内容:

ESP-IDF 入门教程

初次接触 ESP32 ESP-IDF 开发,想要快速上手?我们为您准备了一套通用的 入门教程

请注意:该教程使用 ESP32-S3-Zero 作为教学示例,所有硬件代码均基于其引脚布局。在动手实践前,建议您对照手中的开发板引脚图,确认引脚配置无误。

配置 ESP-IDF 开发环境

信息

ESP32-P4-WIFI6-DB 仓库中的 ESP-IDF BSP 和 brookesia_test 要求 ESP-IDF >=5.510_wifi_antenna_tesat 要求 ESP-IDF >=6.0。这是组件清单声明的版本约束,依赖组件可能提出 额外要求,具体示例的组件和配置要求以对应示例目录中的 README 为准。

备注

以下内容以 Windows 系统为例,使用 VS Code + ESP-IDF 扩展 的方式进行开发。Mac/Linux 用户请参考 官方说明

版本选择

此部分图示以安装 ESP-IDF V5.5.2 为例示范,安装时请选用与您开发板示例匹配的 ESP-IDF 版本。

安装 ESP-IDF 开发环境

  1. 前往 ESP-IDF Installation Manager 下载 ESP-IDF 安装管理器。这是乐鑫最新推出的跨平台安装工具,下文将演示如何使用其离线安装功能。

    在页面中点击 Offline Installer 标签,然后在筛选栏中选择 Windows 操作系统和你需要的 ESP-IDF 版本(图示仅为参考,请以实际为准)。

    下载 EIM 和整合包

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

    下载 EIM 和整合包2

    请耐心等待两个文件下载完成。

  2. 下载完成后,双击运行 ESP-IDF 安装器(eim-gui-windows-x64.exe)

    启动后,可在右上角将界面语言切换为中文。

    切换 EIM 语言

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

    自动检测整合包

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

    选择安装路径
  3. 当看到如下界面时,表示 ESP-IDF 已安装成功。

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

    用 ESP-IDF 安装管理器安装驱动

安装 Visual Studio Code 与 ESP-IDF 扩展

  1. 下载并安装 Visual Studio Code

  2. 安装时建议勾选 通过 Code 打开操作添加到 Windows 资源管理器文件上下文菜单,以便快速打开项目文件夹。

  3. 在 VS Code 中,点击侧边活动栏中的 扩展图标 扩展图标(或使用快捷键 Ctrl + Shift + X)打开 扩展 视图。

  4. 在搜索框中输入 ESP-IDF,找到 ESP-IDF 扩展并点击安装。

    在 VS Code 中搜索并安装 ESP-IDF 扩展

  5. 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_AHX8394,5 英寸720 × 1280
CONFIG_BSP_LCD_TYPE_720_1280_7_INCH_AILI9881C,7 英寸720 × 1280
CONFIG_BSP_LCD_TYPE_800_1280_8_INCH_AJD9365,8 英寸800 × 1280
CONFIG_BSP_LCD_TYPE_800_1280_10_1_INCH_AJD9365,10.1 英寸800 × 1280

BSP Kconfig 默认选择 10.1 英寸 JD9365,brookesia_test 的默认配置选择 8 英寸 JD9365。构建前 应选择实际连接的面板。默认配置不会覆盖已有的 sdkconfig;确认实际生效的选项时,检查工程配置和 生成的 build/config/sdkconfig.h

推荐验证顺序

建议按以下顺序运行示例,先确认板级外设,再验证显示、网络和其他功能:

  1. 00_board_check:板级外设检查。
  2. 02_i2c_console_test:I2C 总线检查。
  3. 03_sdmmc_test:SDMMC 检查。
  4. 04_mipi_dsi_test:显示屏测试。
  5. 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_testmicroSD 文件写入、读取和重命名测试
04_mipi_dsi_testLCD 输出测试,当前显示纯白屏
05_mipi_csi_test使用 PPA 处理并在 LCD 上预览摄像头画面
06_wifi_testWi-Fi Station 联网和网关 ping
07_i2s_codecES8311 内置音频播放或麦克风回放
08_usb_host_mscUSB 大容量存储文件操作和顺序读写速度测试
09_bt_controller_mac_addrHosted 蓝牙 MAC 查看 / 配置及 BLE GATT 测试
10_wifi_antenna_tesatWi-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 版本和实际面板分别确认。