跳到主要内容

ESP-IDF

本章节包含以下部分,请按需阅读:

ESP-IDF 入门教程

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

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

配置 ESP-IDF 开发环境

信息

对于 ESP32-S3-Touch-LCD-1.83 开发板,需要使用 ESP-IDF V5.3.1 以上版本。

备注

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

安装 ESP-IDF 开发环境

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

    在页面中点击 Offline Installer 标签,然后在筛选栏中选择 Windows 操作系统和你要安装的版本。

    下载 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 环境,无需手动配置。

示例程序

ESP-IDF 示例程序位于 示例程序包 的 ESP-IDF 目录中。

示例程序基础例程说明
01_AXP2101通过移植后的 XPowersLib 驱动 AXP2101 获取电源相关数据
02_lvgl_demo_v9运行 LVGL V9 的 demo
03_esp-brookesia运行 esp-brookesia 的示例,v0.4.2 版本依赖
04_Immersive_block使用 qmi8658 沉浸式体验块状体随重力方向倾倒
05_Spec_Analyzer使用 LVGL 实现简单的音频拾音分析仪
06_videoplayer使用 LVGL 实现从 SD 卡中读取 AVI 视频播放,携带音频播放

01_AXP2101

【程序说明】

  • 本示例演示了在使用 ESP-IDF 移植 XPowersLib,通过移植后的 XPowersLib 驱动 AXP2101 获取电源相关数据

【硬件连接】

  • 将开发板接入电脑

【代码分析】

  • i2c_init :初始化 I2C 主设备,为与其他设备(如 PMU)进行通信做准备
    • 配置 I2C 参数,包括设置主设备模式、指定 SDA 和 SCL 引脚、启用上拉电阻以及确定时钟频率
    • 安装 I2C 驱动,将配置应用到实际的硬件上
  • pmu_register_read :从 PMU 的特定寄存器读取一系列字节数据
    • 进行参数检查,确保传入的参数有效,避免无效的读取操作
    • 分两步进行 I2C 操作,先发送要读取的寄存器地址,然后读取数据。在读取过程中,根据要读取的字节长度进行不同的处理,确保数据的准确读取。同时,处理 I2C 通信过程中的错误情况,返回相应的状态码以便上层代码判断读取是否成功

【运行效果】

  • 此示例不会点亮屏幕
  • 串口监视器显示参数:芯片温度,是否正在充电,是否放电,是否待机状态,Vbus 是否连接,Vbus 是否良好,充电器状态,电池电压,Vbus 电压,系统电压,电池百分比

    ESP32-S3-Touch-AMOLED-1.75_IDF_1

02_lvgl_demo_v9

【程序说明】

  • 本示例运行 LVGL V9 的示例程序

【硬件连接】

  • 将开发板接入电脑

【运行效果】

ESP32-S3-Touch-AMOLED-1.75_IDF_1

03_esp-brookesia

【程序说明】

  • 本示例演示了使用 esp-brookesia 框架运行的 ui 界面

【硬件连接】

  • 将开发板接入电脑

【运行效果】

ESP32-S3-Touch-1.83-idf-0301
ESP32-S3-Touch-1.83-idf-0303

04_Immersive_block

【程序说明】

  • 本示例演示了 qmi8658 驱动效果,实现多个块沉浸式跟随重力倾倒

【硬件连接】

  • 将开发板接入电脑

【运行效果】

ESP32-S3-Touch-1.83-idf-03
ESP32-S3-Touch-1.83-idf-04

05_Spec_Analyzer

【程序说明】

  • 本示例实现麦克风拾音功能,使用 FFT 分析音频并且显示到屏幕上

【硬件连接】

  • 将开发板接入电脑

【运行效果】

ESP32-S3-Touch-1.83_sound

06_videoplayer

【程序说明】

  • 本示例演示了从 sd 卡读取 AVI 视频文件播放,可播放音频

【硬件连接】

  • 将开发板接入电脑

【运行效果】

ESP32-S3-Touch-lcd-1.83_sd1
ESP32-S3-Touch-lcd-1.83_sd2

【自定义视频】 用户可以通过下述步骤自定义音频播放片段(需要有一定编程基础)

  • 选择您想要播放的视频(例如 a.mp4)
  • 安装 ffmpeg 工具
    • 通过 ffmpeg 转换视频文件为 avi 格式
      ffmpeg -i a.mp4 -vcodec mjpeg -s '分辨率宽度'x'分辨率高度' -r 30 -q:v 2 -acodec pcm_s16le -ar 44100 -ac 2 a.avi
    • 将转换好的 avi 格式的文件放入 sd 卡中的/avi/目录下
    • 将 sd 卡插入开发板中
  • 编译烧录程序即可