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 作为教学示例,所有硬件代码均基于其引脚布局。在动手实践前,建议您对照手中的开发板引脚图,确认引脚配置无误。
配置开发环境
以下环境设置适用于 Windows 10/11 系统,Mac/Linux 用户请参考 官方说明
-
下载并安装 Visual Studio Code。
-
在 VS Code 中,通过点击 VS Code 侧边活动栏中的
或使用快捷键(Ctrl+Shift+X)来打开 扩展 视图。然后,搜索 ESP-IDF 扩展并安装。

-
安装扩展后,VS Code 左侧活动栏中会出现
图标,点击该图标可查看 ESP-IDF 扩展的基本命令列表,在 Advanced 中选择 配置 ESP-IDF 扩展。

-
选择 Express 进入快速配置模式:

-
根据需要修改以下选项。
- 选择下载服务器:
- Espressif:使用乐鑫中国服务器,下载速度更快。
- Github:使用 GitHub 官方发布链接。
- ESP-IDF 版本:通常根据开发板要求选择对应版本,如无特殊要求建议使用最新的正式版本。对于 ESP32-C6-Touch-LCD-1.83 ,建议 Espressif IDF 版本 ≥ v5.5.0。
- ESP-IDF 容器安装地址:建议使用默认地址,或使用纯英文路径且路径中不包含空格。
- ESP-IDF 所需的工具安装地址:建议使用默认地址,或使用纯英文路径且路径中不包含空格。

- 选择下载服务器:
-
点击 Install 开始安装。你将看到一个显示安装进度的页面,包括 ESP-IDF 下载、ESP-IDF 工具下载安装以及 Python 虚拟环境创建的进度状态。

-
如果安装正确,你会看到所有设置已配置完成的提示,即可开始使用该扩展程序。

注意:如果 ESP-IDF 安装失败或需要重新安装,可以尝试删除 C:\Users\%Username%\esp 和 C:\Users\%Username%\.espressif 文件夹后重试。
示例程序
ESP-IDF 示例程序位于 示例程序包 的 ESP-IDF 目录中。
lvgl_brookesia_01
本示例在使用lvgl 以及 brookesia组件构建APP风格的界面,可独立开发和安装各种应用程序。
![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
|---|
i2s_es7210_rec_02
本示例使用ES7210编码芯片进行录音测试,音频文件保存在TF卡根目录下

代码解释
-
初始化TF卡以及初始化ES7210芯片 :
/* Init I2C bus to configure ES7210 and I2S bus to receive audio data from ES7210 */
i2s_chan_handle_t i2s_rx_chan = es7210_i2s_init();
/* Create ES7210 device handle and configure codec parameters */
es7210_codec_init();
/* Mount SD card, the recorded audio file will be saved into it */
sdmmc_card_t *sdmmc_card = mount_sdcard(); -
开始录音 :
esp_err_t err = record_wav(i2s_rx_chan);
mp3_play_03
本示例使用ES8311播放TF中的MP3音频,音频名称需设置为1.MP3

代码解释
-
初始化TF卡以及初始化8311芯片,并初始化MP3播放库 :
sd_card_init();
ESP_ERROR_CHECK(esp_board_init(16000, 1, 16));
//esp_sdcard_init("/sdcard", 10);
Audio_Play_Init(); -
播放MP3 :
Audio_Play_Music("file://sdcard/1.mp3");
lvgl_example_04
本示例移植LVGL,并播放LVGL demo

代码解释
-
初始化I2C,lcd,触摸IC以及lvgl :
i2c_master_init();
lcd_driver_init();
touch_driver_init();
lvgl_driver_init(); -
使用lvgl互斥锁加载lvgl 官方demo
lvgl_port_lock(0);
lv_demo_stress();
lvgl_port_unlock();
AXP2101_05
本示例驱动AXP2101,并打印电池相关信息

代码解释
-
初始化I2C以及AXP2101 :
ESP_ERROR_CHECK(i2c_init());
ESP_LOGI(TAG, "I2C initialized successfully");
ESP_ERROR_CHECK(pmu_init()); -
创建打印任务
xTaskCreate(pmu_hander_task, "App/pwr", 4 * 1024, NULL, 10, NULL);
lvgl_image_06
本示例使用lvgl显示图片,可以左右滑动手势切换图片

代码解释
-
使用lvgl互斥锁初始化显示图片
lvgl_port_lock(0);
image_slider_init();
lvgl_port_unlock();





