ESP32-S3-Touch-AMOLED-1.75C 是一款由微雪(Waveshare)设计的高性能、高集成微控制器开发板,采用电子吧唧造型的 CNC 铝合金外壳,外观小巧美观且质感出众。板载 1.75 英寸高清电容 AMOLED 屏、高度集成电源管理芯片、六轴传感器 (加速度计 + 陀螺仪)、RTC、低功耗音频编解码芯片及回声消除电路,内置扬声器并预留电池空间,为快速开发和产品原型验证提供强大支持。

ESP32-S3R8 Wi-Fi 和蓝牙 SoC,240MHz 运行频率,叠封 8MB PSRAM
32MB NOR Flash
QMI8658 六轴惯性测量单元 (IMU),包含一个 3 轴陀螺仪和一个 3 轴加速度计
双麦克风设计 配合回声消除电路,能够更高质量地采集音频
板载贴片天线 支持 2.4GHz Wi-Fi (802.11 b/g/n) 和 Bluetooth 5 (LE)
屏幕接口
ES7210 回声消除算法芯片 回声消除算法芯片,可用于消除回声,提高音频采集准度
ES8311 音频编解码芯片
PWR 电源按键 可控制电源通断,支持自定义功能
BOOT 按键 用于设备启动和功能调试
AXP2101 高集成度的电源管理芯片
Type-C 接口 ESP32-S3 USB 接口,用于烧录程序和日志打印
MX1.25 锂电池接口 MX1.25 2PIN 连接器,可用于接入 3.7V 锂电池,支持充放电
板载扬声器焊盘

ESP32-S3-Touch-AMOLED-1.75C 支持 Arduino IDE 和 ESP-IDF 两种开发框架,为开发者提供灵活的选择,您可以根据项目需求和个人偏好选择合适的开发工具。
两种开发方式各有优势,开发者可根据自身需求和技能水平选择。Arduino 简单易学、上手快,适合初学者和非专业人士;ESP-IDF 则提供更高级的开发工具和更强的控制能力,适合有专业背景或对性能要求较高的开发者,更适用于复杂项目开发。
Arduino IDE 是一款便捷灵活、易于上手的开源电子原型平台。无需太多基础知识,简单学习后即可快速开发。Arduino 拥有庞大的全球用户社区,提供海量开源代码、项目示例和教程,以及丰富的库资源,封装了复杂功能,让开发者能够快速实现各种功能。您可以参考 Arduino IDE 开发环境搭建教程 完成初始设置,教程中同时提供了相关示例程序供参考。
ESP-IDF 全称 Espressif IoT Development Framework,是乐鑫科技为 ESP 系列芯片推出的专业开发框架。它基于 C 语言开发,包含编译器、调试器、烧录工具等,支持命令行或集成开发环境(如 Visual Studio Code 配合 Espressif IDF 插件)开发,插件提供代码导航、项目管理、调试等功能。我们推荐使用 VS Code 进行开发,具体配置过程可参考 ESP-IDF (VS Code) 开发环境搭建教程,教程中同时提供了相关示例程序供参考。
请参考 安装和配置 Arduino IDE 教程 下载安装 Arduino IDE 并添加 ESP32 支持。
Arduino 目录中,下载 ESP32-S3-Touch-AMOLED-1.75C 开发板的示例程序包。包内的 Arduino\libraries 目录已包含本教程所需的全部库文件。| 库或文件名称 | 说明 | 版本 | 安装方式 |
|---|---|---|---|
| GFX Library for Arduino | ST7789 显示驱动图形库 | v1.6.4 | 通过库管理器或手动安装 |
| SensorLib | PCF85063、QMI8658 传感器驱动库 | v0.3.3 | 通过库管理器或手动安装 |
| XPowersLib | AXP2101 驱动库 | v0.2.6 | 通过库管理器或手动安装 |
| lvgl | lvgl 显示显示框架 | v8.4.0 | 通过库管理器或手动安装 |
| Mylibrary | 开发板引脚宏定义 | —— | 手动安装 |
| lv_conf.h | LVGL 配置文件 | —— | 手动安装 |
LVGL 及其驱动库的版本之间存在较强的依赖关系。例如,为 LVGL v8 编写的驱动可能不兼容 LVGL v9。为确保示例能够稳定复现,推荐使用上表列出的特定版本。混合使用不同版本的库可能导致编译失败或运行时异常。
安装步骤:
下载 示例程序包。
将其 Arduino\libraries 目录下的所有文件夹(Arduino_DriveBus、GFX_Library_for_Arduino 等)复制到 Arduino 的库文件夹中。
Arduino 库文件夹的路径通常是:c:\Users\<用户名>\Documents\Arduino\libraries。
也可以在 Arduino IDE 中通过 文件 > 首选项,查看“项目文件夹位置”来定位。库文件夹就是此路径下的 libraries 文件夹。
其他安装方式请参考:Arduino 库管理教程。
Arduino 示例程序位于 示例程序包 的 Arduino/examples 目录中。
| 示例程序 | 基础例程说明 | 依赖库 |
|---|---|---|
| 01_HelloWorld | 展示了基本的图形库功能,也可以用于测试显示屏的基础性能以及随机文本显示效果 | GFX_Library_for_Arduino |
| 02_GFX_AsciiTable | 根据屏幕尺寸,在显示屏上按行列打印 ASCII 字符 | GFX_Library_for_Arduino |
| 03_LVGL_AXP2101_ADC_Data | 通过移植后的 XPowersLib 驱动 AXP2101 获取电源相关数据 | GFX_Library_for_Arduino |
| 04_LVGL_QMI8658_ui | LVGL 绘制加速度折线图 | LVGL,SensorLib |
| 05_LVGL_Widgets | LVGL 演示 | LVGL,Arduino_DriveBus ,Adafruit_XCA9554 |
| 06_ES7210 | ES7210 驱动示例,拾取人声检测 | —— |
| 07_ES8311 | ES8311 驱动示例,播放简单的音频 | —— |
显示初始化:
if (!gfx->begin()) {
USBSerial.println("gfx->begin() failed!");
}
清屏并显示文本:
gfx->fillScreen(BLACK);
gfx->setCursor(10, 10);
gfx->setTextColor(RED);
gfx->println("Hello World!");
动图显示:
gfx->setCursor(random(gfx->width()), random(gfx->height()));
gfx->setTextColor(random(0xffff), random(0xffff));
gfx->setTextSize(random(6), random(6), random(2));
gfx->println("Hello World!");

数据总线和图形显示对象的创建
Arduino_DataBus *bus = new Arduino_ESP32QSPI(
LCD_CS /* CS */, LCD_SCLK /* SCK */, LCD_SDIO0 /* SDIO0 */, LCD_SDIO1 /* SDIO1 */,
LCD_SDIO2 /* SDIO2 */, LCD_SDIO3 /* SDIO3 */);
Arduino_GFX *gfx = new Arduino_SH8601(bus, -1 /* RST */,
0 /* rotation */, false /* IPS */, LCD_WIDTH, LCD_HEIGHT);
绘制行列编号和字符表
gfx->setTextColor(GREEN);
for (int x = 0; x < numRows; x++) {
gfx->setCursor(10 + x * 8, 2);
gfx->print(x, 16);
}
gfx->setTextColor(BLUE);
for (int y = 0; y < numCols; y++) {
gfx->setCursor(2, 12 + y * 10);
gfx->print(y, 16);
}
char c = 0;
for (int y = 0; y < numRows; y++) {
for (int x = 0; x < numCols; x++) {
gfx->drawChar(10 + x * 8, 12 + y * 10, c++, WHITE, BLACK);
}
}

亮屏熄屏实现函数
void toggleBacklight() {
USBSerial.println(backlight_on);
if (backlight_on) {
for (int i = 255; i >= 0; i--) {
gfx->Display_Brightness(i);
delay(3);
}
} else {
for (int i = 0; i <= 255; i++) {
gfx->Display_Brightness(i);
delay(3);
}
}
backlight_on = !backlight_on;
}

setup:负责初始化各种硬件设备和 LVGL 图形库环境
USBSerial.begin(115200) 为串口调试做准备loop
lv_timer_handler():这是 LVGL 图形库中的一个重要函数,用于处理图形界面的各种定时器事件、动画更新、输入处理等任务。在每个循环中调用这个函数可以确保图形界面的流畅运行和及时响应交互操作
setup:负责初始化各种硬件设备和 LVGL 图形库环境USBSerial.begin(115200) 为串口调试做准备Wire.begin(IIC_SDA, IIC_SCL); 初始化 I²C 总线,用于与其他 I²C 设备通信lv_demo_widgets() 展示 LVGL 的示例小部件looplv_timer_handler():这是 LVGL 图形库中的一个重要函数,用于处理图形界面的各种定时器事件、动画更新、输入处理等任务。在每个循环中调用这个函数可以确保图形界面的流畅运行和及时响应交互操作delay(5):添加一个小的延迟,避免过度占用 CPU 资源
es8311_codec_init:初始化 ES8311 音频编解码器setup:进行整体的初始化设置,包括串口、引脚、I2S 和 ES8311 编解码器es8311_codec_init 函数初始化 ES8311 编解码器以下环境设置适用于 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 进入快速配置模式:

根据需要修改以下选项。

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

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

注意:如果 ESP-IDF 安装失败或需要重新安装,可以尝试删除 C:\Users\%Username%\esp 和 C:\Users\%Username%\.espressif 文件夹后重试。
ESP-IDF 示例程序位于 示例程序包 的 ESP-IDF 目录中。
| 示例程序 | 基础例程说明 |
|---|---|
| 01_AXP2101 | 通过移植后的 XPowersLib 驱动 AXP2101 获取电源相关数据 |
| 02_lvgl_demo_v9 | LVGL 演示 |
| 03_esp-brookesia | 展示完整手机风格 UI 系统,包含状态栏、导航栏、应用启动器和手势交互等组件 |
| 04_Immersive_block | 通过 QMI8658 六轴传感器采集加速度数据,驱动 LVGL 图形库渲染的随机几何图形跟随设备倾斜方向移动 |
| 05_Spec_Analyzer | 展示实时音频频谱可视化分析仪,以 64 条彩色对称频谱条 + 峰值跟踪的形式,直观呈现音频的频率分布 |
i2c_init:初始化 I2C 主设备,为与其他设备(如 PMU)进行通信做准备pmu_register_read:从 PMU 的特定寄存器读取一系列字节数据
![]() | ![]() | ![]() |
|---|
generate_random_shapes():随机图形生成lv_obj_set_pos),存入图形数组perform_level_calibration():水平校准核心函数accel_bias_x/y)calibration_done 标志,打印偏差信息timer_cb:LVGL 定时器回调函数,负责频谱可视化渲染lv_canvas_finish_layer 提交图层渲染,更新画布显示lv_example_canvas_10:画布初始化LV_DRAW_BUF_DEFINE_STATIC 定义 300×150 像素的 RGB565 格式绘制缓冲区timer_cb 回调函数,并将画布对象作为用户数据传入,实现定时渲染
开发板设计文件
ESP32-S3 芯片官方手册
板载器件数据手册
周一-周五(9:30-6:30)周六(9:30-5:30)
手机:13434470212
邮箱:services04@spotpear.cn
QQ:202004841
