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-CAM-OVxxxx 开发板,需要使用 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_simple_video_server | 在局域网络上使用不同端口创建多个 HTTP 服务器,通过网页浏览器访问,提供视频流功能 |
| 02_esp_sr | 通过 ESP-SR 组件演示语音识别及语音唤醒功能 |
| 03_audio_play | 此示例扫描 TF 卡,并播放 MP3 |
| 04_dvp_camera_display | 此示例展示摄像头画面推流到 LCD 屏幕并显示 |
| 05_lvgl_brookesia | 通过 brookesia 组件展示 LVGL APP 风格 UI |
| 06_usb_host_uvc | 模拟 UVC 设备,演示 USB 摄像头功能 |
01_simple_video_server
程序说明
- 本示例演示创建 HTTP 服务器,通过浏览器访问,获取视频流的功能
硬件连接
- 将开发板接入电脑
- 摄像头:支持 GC0308,GC2145,OV5640,OV3660
代码分析
example_connect():初始化 WIFI 连接- 在 menuconfig 配置中设置 ssid 和 password
- 默认 ssid:WSTEST
- 默认 password:waveshare0755
start_cam_web_server():初始化 http 服务器和初始化摄像头- 先初始化摄像头,如果检测到不支持的摄像头或者格式会提示错误并退出
- 等待摄像头初始化成功,再初始化 http 服务器
运行效果
- 此示例不会点亮屏幕
- 需要查看串口监视器打印出的 IP 地址
- 用浏览器打开 IP 地址,注意需要在同一局域网下


02_esp_sr
程序说明
- 本示例使用 ESP-SR 组件演示离线语音唤醒和语音识别效果
硬件连接
- 将开发板接入电脑
- 请勿遮挡麦克风
代码分析
Speech_Init():初始化麦克风以及创建识别任务- 通过
bsp_audio_codec_microphone_init()返回麦克风控制句柄 - 创建数据读取和检测识别任务
- 通过
Speech_register_callback():注册识别事件回调函数- 可以在回调函数中获取事件
运行效果
- 此示例不会点亮屏幕
- 在串口监视器中查看语音唤醒及识别结果

03_audio_play
程序说明
- 本示例展示播放 TF 中的 MP3 音频文件
硬件连接
- 插入内存卡,需要在根目录中放置 MP3 文件
- 插入喇叭
- 将开发板接入电脑
代码分析
bsp_io_expander_init();():初始化外部扩展 IO- 初始化 PA 控制脚控制音频输出
bsp_sdcard_mount():挂载 TF 卡Search_Music():搜索并保存 TF 卡内的 MP3 文件路径Audio_Play_Init():初始化音频播放器Volume_Adjustment():设置音量大小Audio_Play_Music():播放 MP3
运行效果
- 此示例不会点亮屏幕
- 运行后会自动搜索 TF 卡内的 MP3 文件并播放

04_dvp_camera_display
程序说明
- 本示例为 app 风格 UI+摄像头例程,点击摄像头 APP 即可屏幕上显示图像
硬件连接
代码分析
bsp_display_start():BSP 初始化显示相关资源- 初始化 LCD 屏幕
- 初始化 LVGL
bsp_display_backlight_on():打开背光new ESP_Brookesia_Phone(disp):初始化 Brookesia 组件new PhoneCameraConf(1,0);:安装摄像头 APP
运行效果
- 点击摄像头 APP 图标,屏幕开始显示摄像头图像,点击屏幕任意位置即可返回摄像头设置界面
![]() | ![]() |
|---|
![]() | ![]() |
|---|
05_lvgl_brookesia
程序说明
- 本示例展示完整手机风格 UI 系统,包含状态栏、导航栏、应用启动器和手势交互等组件
硬件连接
代码分析
bsp_display_start():BSP 初始化显示相关资源- 初始化 LCD 屏幕
- 初始化 LVGL
运行效果
-展示效果为 2inch 屏幕


06_usb_host_uvc
程序说明
- 本示例为模拟 UVC 设备,演示 USB 摄像头功能
硬件连接
- 接入 DVP 摄像头:支持 OV5640,OV3660
- 将开发板接入电脑
代码分析
uvc_device_config()配置 UVC 设备相关接口函数uvc_device_init():开始初始化 UVC 设备
运行效果
- 在电脑中打开相机功能即可看到画面,略有延迟,可稍微等待或者重新上电
- 此例程会占用 USB 烧录接口,再次烧录程序时需要按住 BOOT 按键进入下载模式




