


本节提供出厂固件各功能示例的使用说明,用于了解 ESP32-C5-Touch-LCD-2.8 的板载资源和接口使用方式。运行示例前,请准备以下器件:
weather-wifi12345678
若出现 无法识别端口 的情况,请进入 Boot 模式:
下载完成后,重新上电运行程序。
BAT_PWR 按键约 2 秒可关机;关机后再次按下 BAT_PWR 按键可重新开机。Firmware 目录中。支持 Wi-Fi 扫描和配网功能,点击 Wi-Fi 界面的 wifi config 可扫描二维码进行配网操作。
可调节显示亮度,显示 SD 卡大小,并在产品关于界面查看 MAC 地址。








06_wifi_weather 进行修改。
BOOT 按键可重置小球位置。
支持 240x320 及其以下分辨率的 jpg 图片显示
模拟电子相册的界面,此 APP 需要插入 SD 卡,并将 示例程序 sdcard/ 目录下的 photo 文件夹拷贝到 SD 卡根目录。

本章节包含以下内容,请按需阅读:
运行示例前,请确认以下条件已经满足:
Arduino-v3.3.10,请使用与示例包匹配的 Arduino-ESP32 版本。04_I2C_pcf85063,请安装示例包内置的 lib/SensorLib;如需运行 06_lvgl_demo,请安装示例包内置的 lib/lvgl。初次接触 Arduino ESP32 开发,想要快速上手?我们为您准备了一套通用的 入门教程。
请注意:该教程使用 ESP32-S3-Zero 作为教学示例,所有硬件代码均基于其引脚布局。在动手实践前,建议您对照手中的开发板引脚图,确认引脚配置无误。
请参考 安装和配置 Arduino IDE 教程 下载并安装 Arduino IDE。
请在 Arduino IDE 的开发板管理器中安装 esp32 by Espressif Systems 开发板支持包。
ESP32-C5-Touch-LCD-2.8 板载 MCU 模组为 ESP32-C5-WROOM-1-N32R8,芯片版本属于 v1.2,请使用 esp32 by Espressif Systems 的 v3.3.10 版本。
如果使用较旧版本的 ESP32 Arduino core,可能无法正确识别该开发板,导致串口下载失败或无法烧录程序。
ESP32-C5-Touch-LCD-2.8 所需开发板安装说明:
| 板名称 | 板安装要求 | 版本号要求 |
|---|---|---|
| ESP32 by Espressif Systems | "离线"安装 / "在线"安装 | v3.3.10 |
安装完成后,在 Arduino IDE 中选择 ESP32-C5 对应开发板,并选择当前连接的 USB 串口。
ESP32-C5-Touch-LCD-2.8 Arduino 工程参数设置中,开发板需要选择 ESP32C5 Dev Module。

本产品 Arduino 示例尽量减少外部库依赖,主要使用 Arduino ESP32 core 自带能力和示例目录内提供的源码。示例包已经在 example/Arduino-v3.3.10/lib 目录中预置了所需库,可手动复制安装,适合无法联网或不方便使用 Arduino Library Manager 的环境。
| 库或文件 | 作用 | 推荐版本或来源 | 使用示例 | 安装方式 |
|---|---|---|---|---|
| Arduino ESP32 core | ESP32-C5 开发板支持、下载和基础外设接口 | v3.3.10 | 全部示例 | Arduino IDE 开发板管理器 |
lvgl | LVGL 图形界面框架 | 示例包 lib/lvgl,LVGL v8.4.0 | 06_lvgl_demo | 离线手动复制到 Arduino 库目录 |
SensorLib / SensorPCF85063.hpp | PCF85063 RTC 驱动 | 示例包 lib/SensorLib,SensorLib v0.3.1 | 04_I2C_pcf85063 | 离线手动复制到 Arduino 库目录 |
06_lvgl_demo 基于 LVGL v8.4.0。请勿替换为 LVGL v9,否则 lv_disp_drv_t、lv_disp_draw_buf_t、lv_disp_drv_register()、lv_indev_drv_t 等接口会不兼容。
离线/手动安装方式:
下载并解压产品示例程序包。后续库安装可以离线完成,不需要从 Arduino Library Manager 联网下载第三方库。
找到示例包中的库目录:
example/Arduino-v3.3.10/lib/lvgl
example/Arduino-v3.3.10/lib/SensorLib
将 lvgl 和 SensorLib 两个文件夹完整复制到 Arduino 的库目录。
Windows 默认库目录通常是:
C:\Users\<用户名>\Documents\Arduino\libraries
也可以在 Arduino IDE 中通过 File > Preferences 查看 Sketchbook location,其下的 libraries 文件夹就是库目录。
安装完成后重启 Arduino IDE,再打开示例进行编译。
安装检查方法:
Documents\Arduino\libraries 下可以看到 lvgl 和 SensorLib 目录。Documents\Arduino\libraries\SensorLib\library.properties 中可以看到 version=0.3.1。Documents\Arduino\libraries\lvgl\library.properties 中可以看到 version=8.4.0。06_lvgl_demo 目录中的 lv_conf.h 需要保留在当前示例目录内,不要移动到 Arduino 全局库目录,也不要删除。lvgl 或 SensorLib,避免头文件冲突。04_I2C_pcf85063 提示找不到 SensorPCF85063.hpp,请确认示例包中的 lib/SensorLib 已经复制到 Arduino 库目录。esp32 by Espressif Systems v3.3.10。Tools > Board 中选择 ESP32C5 Dev Module。example/Arduino-v3.3.10 下的对应示例 .ino 文件进行编译和烧录。使用 arduino-cli 时,可参考以下命令:
arduino-cli core install esp32:esp32@3.3.10
arduino-cli compile --fqbn esp32:esp32:esp32c5 example/Arduino-v3.3.10/06_lvgl_demo
Arduino 示例程序位于示例程序包的 example/Arduino-v3.3.10 目录。各示例已经按照 ESP32-C5-Touch-LCD-2.8 的实际硬件连接进行适配。
| 功能 | 器件或接口 | 引脚或说明 |
|---|---|---|
| LCD | ST7789,SPI,240 x 320,RGB565 | SCLK GPIO6,MOSI GPIO7,DC GPIO9,CS GPIO10 |
| LCD 复位 | CH32V003 IO 扩展 | EXIO1 |
| LCD 背光 | CH32V003 PWM | CH32 PWM |
| 触摸 | CST3530,I2C | SDA GPIO0,SCL GPIO1,INT GPIO5 |
| 触摸复位 | CH32V003 IO 扩展 | EXIO0 |
| IO 扩展 | CH32V003,I2C 地址 0x24 | SDA GPIO0,SCL GPIO1 |
| 六轴传感器 | QMI8658,I2C 地址 0x6B | SDA GPIO0,SCL GPIO1 |
| RTC | PCF85063,I2C 地址 0x51 | SDA GPIO0,SCL GPIO1 |
| 温湿度传感器 | SHTC3,I2C 地址 0x70 | SDA GPIO0,SCL GPIO1 |
| Micro SD | SDSPI | SCLK GPIO6,MOSI GPIO7,MISO GPIO8,CS GPIO23 |
显示、触摸、背光、复位和传感器引脚已经在示例中按产品硬件连接适配。常规二次开发建议优先修改应用层和 UI 逻辑,不建议随意修改底层引脚定义;只有在更换硬件连接或移植到其他板卡时才需要改动底层驱动。
| 示例目录 | 基础例程说明 | 主要验证内容 |
|---|---|---|
| 01_exio | 测试板载 CH32V003 IO 扩展芯片,循环翻转 EXIO0~EXIO7 输出电平 | IO 扩展、I2C 总线 |
| 02_I2C_qmi8658 | 读取 QMI8658 六轴传感器数据,并通过串口输出加速度和陀螺仪数据 | IMU、I2C 总线 |
| 03_SD_Card | 通过 SDSPI 挂载 Micro SD 卡,打印 SD 卡信息和容量,并提供文件读写接口 | Micro SD、SDSPI |
| 04_I2C_pcf85063 | 初始化 PCF85063 RTC,设置测试时间,并通过串口周期打印 RTC 时间 | RTC、I2C 总线 |
| 05_shtc3 | 读取 SHTC3 温湿度传感器 ID、温度和湿度,并通过串口输出 | 温湿度传感器、CRC 校验 |
| 06_lvgl_demo | 基于 ST7789、CST3530 和 LVGL v8.4.0 显示触摸演示界面 | LCD、背光、触摸、LVGL |
当前 Arduino 示例目录包含以下工程:
example/Arduino-v3.3.10
|-- 01_exio
|-- 02_I2C_qmi8658
|-- 03_SD_Card
|-- 04_I2C_pcf85063
|-- 05_shtc3
|-- 06_lvgl_demo
`-- lib
|-- SensorLib
`-- lvgl
每个子目录都是一个独立 Arduino 示例。打开示例时,应打开对应目录下的 .ino 文件,例如:
example/Arduino-v3.3.10/01_exio/01_exio.ino
lib/SensorLib 是 04_I2C_pcf85063 使用的 RTC 驱动库,当前随包版本为 SensorLib v0.3.1;lib/lvgl 是 06_lvgl_demo 使用的 LVGL v8.4.0 库文件。编译 04_I2C_pcf85063 前至少需要复制 SensorLib,编译 06_lvgl_demo 前至少需要复制 lvgl。
建议按以下顺序运行:
01_exio
-> 02_I2C_qmi8658
-> 03_SD_Card
-> 04_I2C_pcf85063
-> 05_shtc3
-> 06_lvgl_demo
01_exio 验证 CH32V003 IO 扩展和 I2C 总线。LCD 复位、触摸复位和背光都与 CH32V003 有关,建议先确认该示例正常。02_I2C_qmi8658 验证六轴传感器数据读取。03_SD_Card 验证 Micro SD 卡和 SDSPI。04_I2C_pcf85063 验证 RTC 时间设置和读取。05_shtc3 验证 SHTC3 温湿度读取和 CRC 校验。06_lvgl_demo,一次性验证 LCD、背光、触摸和 LVGL。example/Arduino-v3.3.10,请不要与 ESP-IDF 示例目录混用。SDA GPIO0、SCL GPIO1,CH32V003、QMI8658、PCF85063、SHTC3 和 CST3530 都在该 I2C 总线上。03_SD_Card 运行前需要插入 FAT 或 FAT32 格式的 Micro SD 卡。04_I2C_pcf85063 默认每次上电都会写入固定测试时间,若需要 RTC 持续计时,请注释 i2c_rtc_setTime()。06_lvgl_demo 已经适配 ST7789 显示和 CST3530 触摸,不需要额外引入 GFX 显示库或第三方触摸库。LCD_RST = CH32 EXIO1,TP_RST = CH32 EXIO0。【功能说明】
该示例用于验证板载 CH32V003 IO 扩展芯片通信是否正常。CH32V003 通过 I2C 与 ESP32-C5 通信,地址为 0x24,示例会将 EXIO0~EXIO7 配置为输出,并每秒翻转一次电平。
CH32V003 出厂时已经烧录好固件,无需单独烧录 CH32 固件。
【代码入口】
01_exio/01_exio.ino
01_exio/io_extension.cpp
01_exio/io_extension.h
建议优先查看:
| 代码 | 作用 |
|---|---|
Wire.begin(I2C_SDA, I2C_SCL) | 初始化 I2C,总线引脚为 SDA GPIO0、SCL GPIO1 |
IO_EXTENSION_ADDR | CH32V003 I2C 地址,默认 0x24 |
IO_EXTENSION_Init(Wire) | 初始化 IO 扩展芯片 |
IO_EXTENSION_IO_Mode(0xFF) | 将 EXIO0~EXIO7 配置为输出 |
IO_EXTENSION_Output() | 设置指定 EXIO 输出电平 |
【正常运行现象】

【常见排查】
| 现象 | 可能原因 | 处理方法 |
|---|---|---|
串口提示 IO extension not found at 0x24 | I2C 通信失败 | 确认使用 SDA GPIO0、SCL GPIO1,确认开发板供电正常 |
| 后续 LCD 或触摸不正常 | CH32V003 未正常通信 | 先确保 01_exio 正常,再排查显示和触摸 |
| 想重新烧录 CH32V003固件 | 不需要 | CH32V003 出厂已烧录固件,正常使用无需操作 |
【功能说明】
该示例用于读取板载 QMI8658 六轴传感器。程序初始化 I2C 后创建 qmi8658c_example 任务,每秒读取一次加速度和陀螺仪数据,并通过串口输出。
【代码入口】
02_I2C_qmi8658/02_I2C_qmi8658.ino
02_I2C_qmi8658/i2c_bsp.cpp
02_I2C_qmi8658/qmi8658c.cpp
建议优先查看:
| 代码 | 作用 |
|---|---|
I2C_master_Init() | 初始化 I2C,总线引脚为 SDA GPIO0、SCL GPIO1,频率 400 kHz |
QMI8658_SLAVE_ADDR_H | QMI8658 I2C 地址,默认 0x6B |
qmi8658_init() | 初始化 QMI8658 |
qmi8658_read_xyz() | 读取加速度和陀螺仪数据 |
【正常运行现象】

【常见排查】
| 现象 | 可能原因 | 处理方法 |
|---|---|---|
串口提示 qmi8658_init fail | QMI8658 I2C 通信失败 | 确认 I2C 引脚为 GPIO0/GPIO1,先运行 01_exio 或 05_shtc3 验证 I2C |
| 数据一直不变化 | 开发板静止或任务未运行 | 轻微转动开发板,并确认串口波特率为 115200 |
| 编译报 I2C 相关接口错误 | Arduino ESP32 core 版本不匹配 | 使用 esp32 by Espressif Systems v3.3.10 |
【功能说明】
该示例用于验证 Micro SD 卡接口。示例默认使用 SDSPI 模式挂载 SD 卡,挂载路径为 /sd_card,成功后会打印 SD 卡信息和容量。
【代码入口】
03_SD_Card/03_SD_Card.ino
03_SD_Card/sd_card_bsp.cpp
03_SD_Card/sd_card_bsp.h
建议优先查看:
| 代码 | 作用 |
|---|---|
PIN_NUM_CLK | SD SCLK,GPIO6 |
PIN_NUM_MOSI | SD MOSI,GPIO7 |
PIN_NUM_MISO | SD MISO,GPIO8 |
PIN_NUM_CS | SD CS,GPIO23 |
SD_card_Init() | 初始化 SPI 总线并挂载 Micro SD 卡 |
s_example_write_file() / s_example_read_file() | 示例中预留的文件写入和读取接口 |
【正常运行现象】
【常见排查】
| 现象 | 可能原因 | 处理方法 |
|---|---|---|
| SD 卡挂载失败 | 未插卡、卡格式异常或接触不良 | 使用 FAT/FAT32 格式 Micro SD 卡,重新插拔后再测试 |
| 编译失败,提示 SDMMC/SDSPI 相关接口错误 | Arduino ESP32 core 版本不匹配 | 使用 v3.3.10 |
| 文件读写失败 | 挂载失败或路径错误 | 先确认 SD_card_Init() 已成功打印卡信息 |
【功能说明】
该示例用于验证板载 PCF85063 RTC。程序会初始化 RTC,并在 setup() 中调用:
i2c_rtc_setTime(2025, 9, 9, 14, 51, 30);
随后创建 i2c_rtc_loop_task 任务,每秒读取并打印一次 RTC 时间。
【代码入口】
04_I2C_pcf85063/04_I2C_pcf85063.ino
04_I2C_pcf85063/rtc_bsp.cpp
04_I2C_pcf85063/rtc_bsp.h
建议优先查看:
| 代码 | 作用 |
|---|---|
rtc.begin(Wire, SENSOR_SDA, SENSOR_SCL) | 初始化 PCF85063,默认 SDA GPIO0、SCL GPIO1 |
i2c_rtc_setTime() | 设置 RTC 时间 |
i2c_rtc_get() | 读取 RTC 时间结构体 |
i2c_rtc_loop_task() | 周期读取并串口打印 RTC 时间 |
【正常运行现象】
由于示例在 setup() 中每次上电都会重新写入固定测试时间,如需验证 RTC 持续计时,请注释或删除 i2c_rtc_setTime()。
【常见排查】
| 现象 | 可能原因 | 处理方法 |
|---|---|---|
编译提示找不到 SensorPCF85063.hpp | 缺少 SensorLib 依赖 | 将 example/Arduino-v3.3.10/lib/SensorLib 复制到 Arduino libraries 目录 |
串口提示 Failed to find PCF85063 | RTC I2C 通信失败 | 确认 I2C 引脚为 GPIO0/GPIO1,并先测试其它 I2C 示例 |
| 每次上电时间都回到固定时间 | 示例主动写入测试时间 | 注释或删除 i2c_rtc_setTime() 后再测试 RTC 走时 |
【功能说明】
该示例用于读取板载 SHTC3 温湿度传感器。程序使用 Wire 发送 SHTC3 命令,启动后唤醒传感器、读取 ID、执行软复位,并在 loop() 中每秒读取一次温度和湿度。
示例读取数据时会校验 SHTC3 CRC,避免无效数据被当成正常温湿度输出。
【代码入口】
05_shtc3/05_shtc3.ino
建议优先查看:
| 代码 | 作用 |
|---|---|
SHTC3_ADDR | SHTC3 I2C 地址,默认 0x70 |
SHTC3_CMD_READ_ID | 读取传感器 ID |
SHTC3_CMD_MEASURE_T_RH | 触发温湿度测量 |
shtc3Crc() | 校验 SHTC3 返回数据 |
readShtc3() | 读取并换算温度、湿度 |
【正常运行现象】

【常见排查】
| 现象 | 可能原因 | 处理方法 |
|---|---|---|
串口提示 SHTC3 not found | I2C 通信失败 | 确认 I2C 引脚为 GPIO0/GPIO1,确认开发板供电正常 |
串口提示 Failed to read SHTC3 | CRC 校验失败或传感器未正确响应 | 保持开发板稳定供电,重新上电后再测试 |
| 温湿度数值偶发异常 | I2C 数据无效 | 示例已做 CRC 校验,建议以通过校验的数据为准 |
【功能说明】
该示例用于验证 LCD 显示、背光、触摸和 LVGL 基础界面。示例不依赖 GFX 显示库;LCD 驱动参考 ST7789 示例拆分到 Display_ST7789,触摸驱动参考 CST3530 示例拆分到 Touch_CST3530,CH32V003 IO 扩展、LCD 复位、触摸复位和背光控制统一放在 Board_IO 中。
界面会显示开发板名称、显示状态、触摸状态、触摸坐标和背光亮度。
【代码入口】
06_lvgl_demo/06_lvgl_demo.ino
06_lvgl_demo/Board_IO.cpp
06_lvgl_demo/Board_IO.h
06_lvgl_demo/Display_ST7789.cpp
06_lvgl_demo/Display_ST7789.h
06_lvgl_demo/Touch_CST3530.cpp
06_lvgl_demo/Touch_CST3530.h
06_lvgl_demo/lv_conf.h
建议优先查看:
| 代码 | 作用 |
|---|---|
LCD_WIDTH / LCD_HEIGHT | LCD 分辨率,240 x 320 |
EXAMPLE_PIN_NUM_SCLK / EXAMPLE_PIN_NUM_MOSI | LCD SPI 引脚,GPIO6/GPIO7 |
EXAMPLE_PIN_NUM_LCD_DC / EXAMPLE_PIN_NUM_LCD_CS | LCD DC/CS 引脚,GPIO9/GPIO10 |
BOARD_LCD_RST_EXIO | LCD 复位,CH32V003 EXIO1 |
BOARD_TP_RST_EXIO | 触摸复位,CH32V003 EXIO0 |
CST3530_ADDR | CST3530 I2C 地址,默认 0x58 |
LCD_Init() | 初始化 SPI 总线和 ST7789 面板 |
TOUCH2_Init() | 初始化 CST3530 触摸 |
create_demo_ui() | 创建 LVGL 示例界面 |
【正常运行现象】
LCD 显示 ESP32-C5 Touch LCD 2.8 示例界面。触摸屏幕时,界面会更新触摸坐标;拖动底部进度条可以调节屏幕背光亮度;串口会输出:
ESP32-C5-Touch-LCD-2.8 Arduino LVGL demo
Touch controller CST3530 initialized
LVGL demo started
如果触摸未识别,界面会显示 Touch: not found。

【常见排查】
| 现象 | 可能原因 | 处理方法 |
|---|---|---|
编译找不到 lvgl.h | 未安装示例包内 LVGL | 将 example/Arduino-v3.3.10/lib/lvgl 复制到 Arduino libraries 目录 |
编译出现大量 lv_disp_drv_t、lv_indev_drv_t 相关错误 | 使用了 LVGL v9 | 删除错误版本 LVGL,使用示例包内 LVGL v8.4.0 |
| 屏幕不亮 | CH32V003、LCD 复位、背光或 ST7789 初始化异常 | 先运行 01_exio,确认 CH32V003 正常;再恢复 06_lvgl_demo 原始引脚配置 |
| 触摸无响应 | CST3530 未识别或触摸复位异常 | 确认 I2C 为 GPIO0/GPIO1,触摸中断为 GPIO5,触摸复位为 CH32 EXIO0 |
| 显示颜色异常 | RGB565 字节序或色深配置被修改 | 确认 lv_conf.h 使用 LV_COLOR_DEPTH 16,并保持示例中的 LV_COLOR_16_SWAP 配置 |
本章节包含以下内容,请按需阅读:
初次接触 ESP32 ESP-IDF 开发,想要快速上手?我们为您准备了一套通用的 入门教程。
请注意:该教程使用 ESP32-S3-Zero 作为教学示例,所有硬件代码均基于其引脚布局。在动手实践前,建议您对照手中的开发板引脚图,确认引脚配置无误。
请参考 安装 ESP-IDF 开发环境。
ESP32-C5-Touch-LCD-2.8 示例需要 ESP-IDF v5.5.4 版本。
以下内容以 Windows 系统为例,使用 VS Code + ESP-IDF 扩展 的方式进行开发。Mac/Linux 用户请参考 官方说明。
此部分图示以安装 ESP-IDF V5.5.2 为例示范,安装时请选用与您开发板示例匹配的 ESP-IDF 版本。
前往 ESP-IDF Installation Manager 下载 ESP-IDF 安装管理器。这是乐鑫最新推出的跨平台安装工具,下文将演示如何使用其离线安装功能。
在页面中点击 Offline Installer 标签,然后在筛选栏中选择 Windows 操作系统和你需要的 ESP-IDF 版本(图示仅为参考,请以实际为准)。

确认选择无误后,点击下载按钮。浏览器将自动同时下载两个文件:一个是 ESP-IDF 离线整合包(.zst),另一个是 ESP-IDF 安装器(.exe)。

请耐心等待两个文件下载完成。
下载完成后,双击运行 ESP-IDF 安装器(eim-gui-windows-x64.exe)。
启动后,可在右上角将界面语言切换为中文。

安装工具会自动检测同一目录下是否存在离线整合包。点击 从存档安装。

接下来,选择安装路径。建议使用默认路径;若需自定义,请确保路径中不包含中文或空格。确认无误后,点击 开始安装。

当看到如下界面时,表示 ESP-IDF 已安装成功。

建议同时安装驱动程序。点击 完成安装,然后点击 安装驱动程序。

下载并安装 Visual Studio Code。
安装时建议勾选 通过 Code 打开操作添加到 Windows 资源管理器文件上下文菜单,以便快速打开项目文件夹。
在 VS Code 中,点击侧边活动栏中的 扩展图标(或使用快捷键 Ctrl + Shift + X)打开 扩展 视图。
在搜索框中输入 ESP-IDF,找到 ESP-IDF 扩展并点击安装。

当 ESP-IDF 扩展版本 ≥ 2.0 时,扩展会自动检测并识别上述步骤中安装的 ESP-IDF 环境,无需手动配置。
ESP-IDF 示例程序位于示例程序包的 example/ESP-IDF-V554 目录。各示例工程已经按照 ESP32-C5-Touch-LCD-2.8 的板载硬件资源进行适配,可用于验证显示、触摸、音频、SD 卡、Wi-Fi、传感器和图形界面等功能。
进入任意 ESP-IDF 示例目录后执行:
cd example/ESP-IDF-V554/02_2048
idf.py build flash monitor
如果需要指定串口,请将 COMx 替换为实际串口号,例如 COM5:
idf.py -p COMx build flash monitor
| 示例目录 | 功能 |
|---|---|
01_ch32_test | CH32V003 IO 扩展芯片测试,验证 IO 输出翻转和输入读取功能。 |
02_2048 | 基于 LVGL v9 的 2048 小游戏,支持触摸交互、分数统计和游戏结果提示。 |
03_sd_lvgl | 挂载 Micro SD 卡,读取根目录 Test.txt 文件,并将文本内容显示到 LCD。 |
04_sd_music | 从 SD 卡 /sdcard/music 目录扫描 MP3 文件,并自动播放第一首音乐。 |
05_spiff_music | 从 SPIFFS /music 目录读取 MP3 文件,实现带 LVGL 界面的音乐播放器。 |
06_wifi_weather | 连接指定 Wi-Fi,获取深圳实时天气数据,并在屏幕上显示天气信息。 |
07_Ball_qmi | 读取 QMI8658 加速度数据,实现随开发板倾斜移动的重力小球。 |
08_bookesia | 基于 ESP-Brookesia 框架实现触摸画板应用,并显示状态栏和内存信息。 |
01_ch32_test 用于测试板载 CH32V003 IO 扩展芯片。CH32V003 出厂时已经烧录好固件,无需单独烧录 CH32 固件,运行 ESP32-C5 示例即可验证 IO 扩展通信和控制功能。02_2048 的 UI 基于 GUI Guider 生成,界面布局主要位于 components/generated/setup_scr_Game2048.c,事件函数主要位于 components/generated/events_init.c,自定义初始化和扩展逻辑位于 components/custom/custom.c。03_sd_lvgl 运行前,请在 SD 卡根目录放置 Test.txt 文件。04_sd_music 运行前,请在 SD 卡根目录创建 music 文件夹,并放入 .mp3 文件。05_spiff_music 使用 SPIFFS 中的 MP3 文件,适合配合 LVGL 界面实现音乐播放器效果。06_wifi_weather 默认连接 weather-wifi 热点,密码为 12345678,热点支持 2.4GHz 或 5GHz 频段;如需修改热点或城市,请在示例源码中调整对应配置。07_Ball_qmi 校准时需要保持开发板水平静止,否则小球可能出现明显偏移。08_bookesia 使用 ESP-Brookesia 框架,适合作为触摸 GUI、多应用界面和画板功能的二次开发参考。IO_EXP_PIN_0 到 IO_EXP_PIN_7 配置为输出模式,并循环输出高低电平;随后切换为输入模式并读取输入状态。IO_EXP_PIN_0~7 配置、输出和读取成功的日志。
main.c 会依次调用 setup_ui()、custom_init() 和 events_init() 完成界面创建、自定义初始化和事件绑定。components/generated/setup_scr_Game2048.c 查看 2048 页面控件布局,参考 components/generated/events_init.c 查看触摸和按钮事件逻辑,参考 components/custom/custom.c 查看自定义初始化和业务扩展逻辑。
Test.txt 文件,并将文件内容显示在 LCD 中央。Test.txt 文件。Waiting for SD card...。Test.txt 中的文本内容。SD card not detected!。
/sdcard/music 目录下的 .mp3 文件。music 文件夹,并放入 .mp3 音频文件。
/spiffs/music 目录下的 .mp3 文件。music 目录中。
| 项目 | 默认值 |
|---|---|
| Wi-Fi 名称 | weather-wifi |
| Wi-Fi 密码 | 12345678 |
| Wi-Fi 频段 | 2.4GHz 或 5GHz 均可 |
| 天气城市 | 深圳 |
| 请求服务器 | cn.apihz.cn |



XiaozhiAI(小智 AI)是一个基于 ESP32 开发板的开源 AI 语音聊天机器人项目,旨在将大语言模型(LLM)的通用智能赋予边缘设备。它提供了一套软硬件结合的解决方案,支持全双工语音对话及 IoT 设备控制,致力于协助开发者低成本、快速地构建高定制度的实体 AI 智能体。
本文演示如何为微雪电子支持小智 AI 的 ESP32 开发板烧录固件,包括无开发环境烧录(直接烧录预编译固件)和有开发环境烧录(从源码编译并烧录)两种方式。
本文以 ESP32-S3-Touch-AMOLED-1.8 开发板为例进行演示,若使用其他开发板,操作步骤类似。
请先确认你的硬件在 小智 AI 适配产品列表 中。

访问 小智 GitHub 下载对应设备的固件文件,点击 Assets 展开全部文件列表:

参考 Flash 固件的烧录与擦除教程 完成固件烧录。
此仓库 汇总了微雪电子支持小智 AI 的 ESP32 开发板固件,所有固件均已在对应开发板上测试验证,方便用户集中查找和下载。固件版本更新可能略晚于小智官方仓库。
访问 微雪 GitHub 仓库,根据需求选择合适版本的固件进行下载:

参考 Flash 固件的烧录与擦除教程 完成固件烧录。
访问 XiaoZhi AI Chatbot 仓库下载完整工程代码:

参考 ESP-IDF 环境搭建教程 完成开发环境的配置。
点击 选择目标设备,根据您的开发板选择对应的芯片型号(如
esp32s3):

设置目标设备时,ESP-IDF 会自动配置相应的工具链和库,此过程可能需要一些时间,请耐心等待。更多详情请参阅 官方文档。
点击 打开 ESP-IDF 终端,执行
idf.py menuconfig 命令进入配置界面,选择 Xiaozhi Assistant:

选择 Board Type 进入开发板类型选择:

选择与您的开发板对应的产品型号:

按 S 键保存配置并退出,然后点击 一键构建、烧录和监视图标,自动完成编译、烧录和串口监视。
使用手机或电脑连接设备的 WiFi 热点:Xiaozhi-xxxxxx。连接成功后通常会自动跳转到配置页面,若未自动跳转,请手动在浏览器中访问 http://192.168.4.1。
在网络配置页面选择要连接的 WiFi 名称(仅支持 2.4G 频段;若要连接 iPhone 热点,需在手机系统设置中开启最大兼容性),SSID 将自动填入,输入密码后点击 Connect 开始连接:

确保设备已成功连接到互联网,此时设备会播报 6 位设备验证码(可重复唤醒设备再次播报)。
访问 小智 AI 控制面板,如未注册请先完成账号注册并登录:



输入 6 位验证码后,设备将自动激活并显示在设备管理页面,即可正常使用。
说出唤醒词 "你好,小智" 即可唤醒设备,开始语音对话。
ESP32-S3-Touch-AMOLED-1.8 按键说明:

开发板设计文件
ESP32-C5 芯片官方手册
板载器件数据手册
周一-周五(9:30-6:30)周六(9:30-5:30)
手机:13434470212
邮箱:services04@spotpear.cn
QQ:202004841
