跳到主要内容

ESP-IDF

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

ESP-IDF 入门教程

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

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

配置 ESP-IDF 开发环境

备注

以下内容以 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 目录中。

ESP32-S3-Touch-LCD-2.8B-Test

程序说明

  • 本示例演示了如何在嵌入式设备上集成 LVGL 图形库,通过硬件初始化与图形库初始化的配合,搭建完整的图形界面运行环境。通过持续调用 LVGL 核心循环,确保图形界面实时响应用户交互并刷新系统状态,同时兼顾 CPU 资源的合理占用。

硬件连接

  • 将开发板接入电脑

代码分析

  • Driver_Init():

    • 此函数进行硬件初始化并创建一个任务。它初始化了闪存、电池、I2C 总线、实时时钟、陀螺仪和外部 IO。然后创建一个任务 Driver_Loop ,该任务持续处理陀螺仪、实时时钟和获取电池电压,每 100 毫秒执行一次循环操作。
  • Driver_Loop():

    • 作为一个持续运行的任务,循环处理陀螺仪和实时时钟的相关操作,并获取电池电压。通过这种方式确保这些硬件设备的状态持续更新。
  • app_main():

    • 这是程序的主入口函数。首先初始化无线模块,然后调用 Driver_Init 进行硬件初始化。接着依次初始化 LCD 显示屏、SD 卡和 LVGL 图形库、模拟触摸输入。调用 LVGL 的示例函数 Lvgl_Example1 展示特定图形界面效果。在主循环中,每 10 毫秒延迟一次并调用 lv_timer_handler 处理 LVGL 的定时器事件,以确保图形界面的正常运行和更新。

运行效果

  • LCD 屏幕显示:

  • 参数说明:

参数功能说明
SD Card显示 SD 卡的大小连接 SD 卡,若识别失败请将 SD 卡格式化为 FAT32 格式(首次识别失败请等待一会后复位下再查看)
Flash Size显示 Flash 大小当前板载 16MB Flash
Battery Voltage电池电压连接电池时可检测到电池电压
Angular deflection显示板子角度偏移显示三个方向的偏移
RTC Time显示 RTC 时间RTC 时间与当前时间不一致,是因为掉电状态下并不能留存数据,如需要保持 RTC 时间正常,则需连接 RTC 电池并更新 RTC 时间
Wireless scan显示扫描到的 WIFI 个数扫描结束会在末尾显示 Scan Finish
The buzzer test蜂鸣器控制页面可控制蜂鸣器开关
Backlight brightness亮度滑动条调节屏幕亮度