跳到主要内容

Arduino 开发

本章节介绍 Arduino 开发环境配置方法和产品示例程序。

阅读前准备

运行示例前,请确认以下条件已满足:

  • 已准备 ESP32-C5-Touch-LCD-3.5 开发板和支持数据传输的 USB 线。
  • 已安装 Arduino IDE。
  • 已安装 Arduino ESP32 Core v3.3.10。
  • 运行 Micro SD 卡示例前,已插入 Micro SD 卡。

Arduino 入门教程​

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

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

配置开发环境​

1. 安装 Arduino IDE​

参考 安装和配置 Arduino IDE 教程 完成安装。

2. 安装 ESP32 开发板支持包​

在 Arduino IDE 的开发板管理器中安装 esp32 by Espressif Systems v3.3.10。

版本要求

示例程序基于 Arduino ESP32 Core v3.3.10 开发并完成验证。使用其他版本时,可能无法正确识别 ESP32-C5 开发板,导致串口下载失败或无法烧录程序。

安装完成后,在 Arduino IDE 中设置:

设置项选择
BoardESP32C5 Dev Module
Port开发板对应的 USB 串口
USB CDC On BootEnabled
PSRAMEnabled
Flash ModeQIO
Flash Size16MB (128Mb)
Partition Scheme16M Flash (3MB APP/9.9MB FATFS)

USB CDC On Boot 用于通过 ESP32-C5 原生 USB 查看串口输出。如果开发板无法进入下载状态,请参考 产品 FAQ。

Arduino ESP32 Core v3.3.10 的 ESP32-C5 菜单最高提供 16 MB Flash 选项,因此上述配置仅使用板载 32 MB Flash 的一部分;出厂 ESP-IDF 工程按 32 MB Flash 配置。

下图中的 Flash Mode: DIO 为旧设置,当前工程请按上表选择 QIO。

3. 安装示例依赖​

新版工程的 examples/arduino/libraries 目录包含以下示例依赖库:

库版本用途
SensorLib0.3.104_I2C_pcf85063 的 PCF85063 RTC 驱动
XPowersLib示例包内版本06_axp2101_example 的 AXP2101 驱动
lvgl8.4.007_lvgl_demo 的图形界面库

将需要的库目录完整复制到 Arduino Sketchbook 下的 libraries 目录,然后重启 Arduino IDE。Windows 默认路径通常为:

C:\Users\<用户名>\Documents\Arduino\libraries

示例程序​

新版产品 示例程序仓库 中,Arduino 示例位于 examples/arduino/examples 目录。每个子目录都是独立工程,请打开与目录同名的 .ino 文件。

旧版工程中的示例位于 example/Arduino-v3.3.10/example,库位于 example/Arduino-v3.3.10/libraries。本页按当前 GitHub 仓库目录说明,已有旧版工程时请重新下载。

示例列表​

示例目录功能主要验证内容
01_exio循环翻转 EXIO8~EXIO15 输出电平IO 扩展芯片、I2C
02_I2C_qmi8658读取加速度和角速度QMI8658、I2C
03_SD_Card挂载 Micro SD 卡并输出容量信息Micro SD 卡、SDSPI
04_I2C_pcf85063设置并周期读取 RTC 时间PCF85063、I2C
05_shtc3读取环境温度和湿度SHTC3、I2C、CRC 校验
06_axp2101_example读取电源和充电状态AXP2101、电源管理
07_lvgl_demo显示 LVGL 界面并测试触摸与背光调节ST7796、FT6336、LVGL

01_exio​

程序说明

示例通过 I2C 初始化 IO 扩展芯片,将 EXIO8~EXIO15 配置为输出,并每隔 1 秒在高、低电平之间切换。EXIO0~EXIO7 保持输入模式。

硬件连接

  • 将开发板通过 USB 连接到电脑。

运行效果

串口每隔 1 秒交替输出:

EXIO8~EXIO15 output: LOW
EXIO8~EXIO15 output: HIGH

如果输出 IO extension not found at 0x24,请检查开发板供电及 GPIO27/GPIO26 对应的 I2C 配置。

02_I2C_qmi8658​

程序说明

示例初始化 QMI8658 六轴传感器,然后在 FreeRTOS 任务中周期读取加速度和角速度数据。

硬件连接

  • 将开发板通过 USB 连接到电脑。

运行效果

串口输出 QMI8658 初始化信息和传感器数据。转动开发板时,输出值随姿态变化。

03_SD_Card​

程序说明

示例使用 SDSPI 挂载 Micro SD 卡,挂载点为 /sd_card,成功后输出卡类型和容量信息。

硬件连接

  • 将开发板通过 USB 连接到电脑。
  • 将 FAT32 格式的 Micro SD 卡插入卡槽。
挂载失败时的格式化行为

当 Micro SD 卡挂载失败时,当前示例配置会尝试格式化存储卡。运行前请备份卡内数据。

运行效果

挂载成功后,串口输出 Micro SD 卡类型和容量信息。

04_I2C_pcf85063​

程序说明

示例初始化 PCF85063 RTC,并在每次启动时将时间写入为 2025-09-09 14:51:30。随后每隔 1 秒读取并输出一次 RTC 时间。

如需验证 RTC 持续走时,请注释 setup() 中的 i2c_rtc_setTime(),否则每次重启都会重新写入固定时间。

硬件连接

  • 将开发板通过 USB 连接到电脑。

运行效果

串口每隔 1 秒输出一次 RTC 日期和时间。

05_shtc3​

程序说明

示例唤醒 SHTC3,读取传感器 ID 并执行软复位,然后每隔 1 秒读取一次温度和湿度。程序会校验传感器返回数据的 CRC。

硬件连接

  • 将开发板通过 USB 连接到电脑。

运行效果

SHTC3 ID: 0xXXXX
Temperature: 25.00 C, Humidity: 50.00 %

实际数值由当前环境决定。如果输出 Failed to read SHTC3,请检查供电和 I2C 配置,然后重新上电测试。

06_axp2101_example​

程序说明

示例通过 I2C 初始化 AXP2101 电源管理芯片,输出各路 DCDC 和 LDO 的开关状态与电压。程序会监测 VBUS、电池、系统电压和芯片温度,并每隔 5 秒输出一次状态。

示例不会修改或关闭各路 DCDC/LDO 输出,充电参数设置为:

  • 预充电电流:50 mA
  • 恒流充电电流:400 mA
  • 终止电流:25 mA
  • 充电截止电压:4.2 V

硬件连接

  • 将开发板通过 USB 连接到电脑。
  • 如需查看电池电压、电量百分比或充放电状态,将符合产品要求的 3.7 V 锂电池连接到电池接口。
保留充电参数限制

修改 AXP2101 充电电流或截止电压前,必须确认电池规格和硬件充电设计允许该参数。

运行效果

串口首先输出 AXP2101 芯片 ID 和各路电源轨状态,随后周期输出 VBUS、电池、系统电压和芯片温度。

周期状态输出

字段可能结果含义
VBUSconnected / disconnectedUSB 或外部电源是否接入 VBUS
validyes / noVBUS 输入电压是否有效
VBUS 电压数值,mVVBUS 输入电压
Batteryconnected / disconnected电池是否连接
chargingyes / no是否正在充电
dischargingyes / no是否正在放电
电池电压数值,mV当前电池电压
电量0% 〜 100%估算电池电量,仅在检测到电池时输出
System数值,mVPMU 系统供电电压,通常为 VSYS
PMU temperature数值,°CAXP2101 芯片内部温度

中断事件输出

输出信息含义
Event: VBUS insertedUSB 或外部电源接入
Event: VBUS removedUSB 或外部电源拔出
Event: battery inserted电池插入
Event: battery removed电池移除
Event: charging started开始充电
Event: charging completed充电完成
Event: power key short press短按 PWR 按键
Event: power key long press长按 PWR 按键

07_lvgl_demo​

程序说明

示例基于 LVGL v8.4.0 初始化 ST7796 LCD 和 FT6336 电容触摸芯片,用于验证屏幕显示、触摸输入和背光调节功能。

界面包含触摸测试按钮和背光滑块:

  • 点击 Touch test 按钮后,按钮文本显示累计点击次数。
  • 拖动背光滑块可在 10%~100% 范围内调节屏幕亮度。

LCD 使用 60 MHz SPI 时钟和 RGB565 像素格式。LCD 复位、触摸复位和背光 PWM 由 IO 扩展芯片控制。

硬件连接

  • 将开发板通过 USB 连接到电脑。
  • 本示例不需要插入 Micro SD 卡。
LVGL 版本

请使用工程随附的 LVGL v8.4.0,新版工程中的路径为 examples/arduino/libraries/lvgl。LVGL v9 的显示和输入设备接口与本示例不兼容。lv_conf.h 必须保留在 07_lvgl_demo 目录中。

运行效果

屏幕显示开发板型号、LCD 和触摸状态、触摸测试按钮以及背光滑块。串口初始化成功后输出:

Touch controller FT6336 initialized
ESP-IDF LCD IO + LVGL demo started