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-S3-AUDIO-Board 开发板,需要使用 ESP-IDF V5.5.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 示例程序位于 示例程序包 的 ESP-IDF 目录中。
| 示例程序 | 基础例程说明 |
|---|---|
| 01_factory | 出厂程序,运行语音唤醒和识别,同时按键控制播放 MP3 及灯光控制 |
| 02_esp_sr | 运行 ESP-SR 例程,实现语音唤醒和识别 |
| 03_mp3_play | 播放 TF 内的 MP3 |
| 04_lvgl9_3_example | 运行 LVGL9.3 demo |
01_factory
程序说明
- 本示例集成语音唤醒与识别功能,支持通过按键控制 MP3 播放,同时搭配 RGB 灯效联动
- 程序需要带 MP3 文件的 SD 卡才可按键控制播放 MP3。
硬件连接
- 将 SD 卡插入开发板中
- 将开发板接入电脑
代码分析
esp_board_init:初始化 I2C、I2S、ES8311 以及 ES7210 等外设- 配置 I2C 参数,包括设置主设备模式、指定 SDA 和 SCL 引脚、启用上拉电阻以及确定时钟频率
- 配置 I2S 参数,将配置应用到实际的硬件上
- 初始化 ES8311 播音 codec
- 初始化 ES7210
tca9555_driver_init:tca9555_driver_init():- 将 tca555 挂载到 I2C 总线设备上
- 配置 IO 口输入输出
esp_sdcard_init:挂载 TF 卡Speech_Init:初始化 esp-sr,实现语音唤醒和识别:- 创建两个任务,一个给 ESP-SR 模型输入 I2S 数据,一个是解析识别结果
- Speech_register_callback() 是注册识别结果回调函数,用户可根据需求定义回调函数的处理逻辑,同一识别结果可对应多种业务操作,无需修改语音识别模块本身。
Audio_Play_Init:初始化 MP3 播放器,实现播放、暂停、恢复、停止、调节音量等功能RGB_Example:WS2812 初始化及相关演示效果key_module_init:初始化按键,实现短按及长按- key_register_callback() 为按键注册回调函数,处理用户逻辑
Search_mp3_Music:寻找 TF 卡根目录下的 MP3, 并存储文件名及 MP3 文件数量
运行效果
唤醒词以及识别命令
- 唤醒词:Hi,Esp
- 命令词:
- 灯光变成红色
- 灯光变成蓝色
- 灯光变成绿色
- 灯光变成白色
- 此示例不会点亮屏幕
- 本程序默认启用语音识别,唤醒词为 "hi esp"(识别要求较为严格,发音需要标准,语速放缓)
- 以下提供测试音频 MIC 测试音频(请注意,每次 hi esp 唤醒失败的话请重新将音频调至该次唤醒词播放处重新播放)
- 测试音频中之所以播放两次唤醒词,是由于当前固件版本首次唤醒需要聚焦设备(比喻),并且当前固件并不允许关闭该功能
- K2 按键可以控制 MP3 播放,暂停
- k1 按键短按增加音量,长按上一首播放
- K3 按键短按减小音量,长按下一首播放
- 播放时灯光会循环亮起,识别到唤醒词 "hi,esp" 之后灯光开始闪烁,6 秒内无任何识别词将超时退出识别

02_esp_sr
程序说明
- 本示例运行 ESP-SR 示例程序,演示语音唤醒和语音识别功能
硬件连接
- 将开发板接入电脑
运行效果
唤醒词以及识别命令
- 唤醒词:Hi,Esp
- 命令词:
- Turn on the backlight
- Turn off the backlight
- Backlight is brightest
- Backlight is darkest
- 此示例不会点亮屏幕
- 打开串口监视器
- 本程序默认启用语音识别,唤醒词为 “hi esp”(识别要求较为严格,发音需要标准,语速放缓)
- 以下提供测试音频 MIC 测试音频(请注意,每次 hi esp 唤醒失败的话请重新将音频调至该次唤醒词播放处重新播放)

03_mp3_play
程序说明
- 本示例开机扫描 TF 卡根目录下的 MP3 文件,并播放
硬件连接
- 将 SD 卡插入开发板中
- 将开发板接入电脑
运行效果
- 此示例不会点亮屏幕
- 会自动扫描 TF 根目录下的 MP3 文件

04_lvgl9_3_example
程序说明
- 本示例演示了板载各个设备的功能,屏幕 2 显示 SD Card,Flash Size 等参数,屏幕 1 为音乐播放界面;另外,此示例增加语音识别功能。
- 程序仅在连接带 MP3 文件的 SD 卡、屏幕和摄像头时才可完整运行
硬件连接
- 将 SD 卡插入开发板中
- 将开发板接入电脑
- 接入 1.47 inch lcd 屏幕
代码分析
lcd_driver_init():初始化屏幕touch_driver_init(): 初始化触摸lvgl_driver_init():初始化 LVGLCamera_Driver_Init():初始化摄像头配置参数
运行效果
LCD 屏幕显示参数说明(点击展开)
| 参数 | 功能 | 说明 |
|---|---|---|
| SD Card | 显示 SD 卡的大小 | 连接 SD 卡,若识别失败请将 SD 卡格式化为 FAT32 格式(首次识别失败请等待一会后复位下再查看) |
| Flash Size | 显示 Flash 大小 | 当前板载 16MB Flash |
| RTC Time | 显示 RTC 时间 | 显示当前 RTC 时间 RTC 时间与当前时间不一致,是因为掉电状态下并不能留存数据,如需要保持 RTC 时间正常,则需连接 RTC 电池并更新 RTC 时间 |
| Backlight brightness | 亮度滑动条 | 调节屏幕亮度 |
- 页面 2 为播放 SD 卡根目录下的 mp3 音频的 UI 页面
- 本程序默认启用语音识别,唤醒词为 "hi esp",唤醒后,背光变暗后即可说出指令(背光未变暗则表示未被唤醒,识别要求较为严格,发音需要标准,语速放缓)
- 以下提供几种格式的 MIC 测试音频(请注意,每次 hi esp 唤醒失败的话请重新将音频调至该次唤醒词播放处重新播放)
- 测试音频中之所以播放两次唤醒词,是由于当前固件版本首次唤醒需要聚焦设备(比喻),并且当前固件并不允许关闭该功能
