ESP32-S3-LCD-1.28 是一款微雪 (Waveshare) 设计的低成本,高性能的微控制器开发板。其中板载了 1.28 英寸 LCD 屏、锂电池充电芯片、六轴传感器(三轴加速度计与三轴陀螺仪)等外设,采用的 ESP32-S3R2 是集成了低功耗 Wi-Fi 和 BLE5.0 的系统级芯片(SoC),此外还具有外部 16MB Flash 和 2MB PSRAM。Soc内部的硬件加密加速器、RNG、HMAC 和数字签名 (Digital Signature) 模块,可以满足物联网的安全要求。多种低功耗工作状态满足在物联网 (IoT)、移动设备、可穿戴电子设备、智能家居等应用场景的功耗需求。

1、ESP32-S3R2 2、W25Q128JVSIQ 3、QMI8658 4、ME6217C33M5G 5、CH343P 6、ETA6096 |
8、BOOT 按键 9、RESET 按键 10、MX1.25 电池接口 11、USB Type-C 接口 12、2.4GHz 陶瓷天线 |

| ESP32-S3R2 | LCD | MX1.25 | QMI8658 | other |
| GPIO0 | BOOT0 | |||
| GPIO1 | ADC | |||
| GPIO5 | TP_INT | |||
| GPIO6 | SDA | |||
| GPIO7 | SCL | |||
| GPIO8 | LCD_DC | |||
| GPIO9 | LCD_CS | |||
| GPIO10 | LCD_CLK | |||
| GPIO11 | LCD_MOSI | |||
| GPIO12 | LCD_RST | |||
| GPIO40 | LCD_BL | |||
| GPIO47 | INT1 | |||
| GPIO48 | INT2 |

| LCD参数 | |||
| 显示芯片 | GC9A01A | 显示接口 | SPI |
| 分辨率 | 240(H)RGB x 240(V) | 显示尺寸 | Φ32.4mm |
| 显示面板 | IPS | 像素大小 | 0.135(H)x0.135(V)mm |
| IMU参数 | |||
| 传感器名称 | QMI8658 | ||
| 加速度计特性 | 分辨率:16 位 量程 (可选):±2、±4、±8、±16g | ||
| 陀螺仪特性 | 分辨率:16 位 量程 (可选):±16、±32、±64、±128、±256、±512、 ±1024、±2048°/sec | ||
ESP32-S3-LCD-1.28 目前提供 Arduino IDE 和 MicroPython 两种开发工具和框架,提供了灵活的开发选择,你可以根据项目需求和个人习惯选择适合的开发工具。
| Arduino IDEArduino IDE是一款便捷灵活、方便上手的开源电子原型平台。不需要太多基础,简单学习后,你也可以快速地进行开发。同时,Arduino 拥有庞大的全球用户社区,提供了海量的开源代码、项目示例和教程,还有丰富的库资源,封装了复杂功能,让开发者能快速实现各种功能。 |
| MicroPythonMicroPython是Python 3编程语言的完全实现,它可直接运行在 ESP32、Raspberry Pi Pico 等嵌入式硬件上。你可以通过REPL直接在板子上运行Python脚本,非常适合快速原型设计。 |
Arduino 和 MicroPython因其简单易学、上手快,非常适合初学者和非专业人士。

本章介绍 Arduino 环境搭建,包括 Arduino IDE、ESP32板管理、相关库的安装,程序编译下载及示例程序测试,帮助用户掌握开发板,便于二次开发。


| 板名称 | 板安装要求 | 版本号要求 |
|---|---|---|
| esp32 by Espressif Systems | “离线”安装/“在线”安装 | 2.0.12 |
| 库名称 | 说明 | 版本 | 库安装要求 |
|---|---|---|---|
| LVGL | 图形库 | v8.3.10 | “离线”安装 |
| TFT_eSPI | LCD库 | v2.5.34 | “离线”安装 |
| TFT_eSPI_Setups | 自定义库 | -- | “离线”安装 |
File -> New Sketch
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
}
void loop() {
// put your main code here, to run repeatedly:
Serial.println("Hello, World!");
delay(2000);
}File -> Save As...;在弹出的菜单选择保存工程路径,并输入工程名,如 Hello_World,点击保存①. 点击选择下拉框选项“Select Other Board and Port”;
②. 搜索需要的开发板型号“esp32s3 dev module”并选择;
③. 选择COM口;
④. 保存选择。

①. 编译程序;②. 编译并下载程序;③. 下载成功。


| 示例程序 | 基础例程说明 | 依赖库 |
|---|---|---|
| ESP32-S3-LCD-1.28-Test | 测试板载设备功能 | --- |
| LVGL_Arduino | 显示 LVGL benchmark,music 等 | LVGL,TFT_eSPI ,TFT_eSPI_Setups |
| LVGL_Chinese_Font | 显示 LVGL 内置的 1000 个常用中文字体 | LVGL,TFT_eSPI ,TFT_eSPI_Setups |
| LVGL_Chinese_7500_Char | 显示 LVGL内置的 7500 个中文字体 | LVGL,TFT_eSPI ,TFT_eSPI_Setups |

【程序说明】
【硬件连接】

【代码分析】
Paint_Clear(WHITE)清除图像缓存,然后重新绘制图形并显示传感器数据和 ADC 转换后的电压值【运行效果】




【程序说明】
【硬件连接】
【代码分析】
w 和高度 h,通过获取传入的显示区域的坐标差值并加 1 得到 tft.startWrite()开始向 TFT 显示屏写入数据,然后使用 tft.setAddrWindow设置 TFT 显示屏的显示区域为传入的 area指定的区域 tft.pushColors将颜色数据(指向 color_p的颜色数据转换为 uint16_t类型)推送到 TFT 显示屏上进行显示,其中参数 w * h表示要推送的像素数量,true表示在推送完成后进行数据传输的结束操作 lv_disp_flush_ready(disp_drv)通知 LVGL 刷新完成,以便 LVGL 可以进行后续的操作my_disp_flush函数注册为 LVGL 的刷新回调函数test1_240_240_4 example_increase_reboot 函数【运行效果】



【程序说明】
【硬件连接】
【代码分析】
tft.startWrite()、tft.setAddrWindow()和tft.pushColors()来将 LVGL 中的颜色数据color_p写入到 TFT 显示屏的特定区域lv_disp_flush_ready()通知 LVGL 刷新完成【运行效果】


【程序说明】
【硬件连接】
【代码分析】
tft和触摸传感器touch,包括设置显示屏的旋转方向和可能的触摸校准数据draw_buf和显示驱动disp_drv,设置显示分辨率、刷新回调函数等,并将显示驱动注册到 LVGLindev_drv,设置为指针类型并指定触摸读取回调函数,然后注册输入设备驱动label,设置文本字体、文本内容(支持颜色重绘),并将其居中显示在屏幕上lv_timer_handler()函数,让 LVGL 图形库处理其内部的定时任务和事件delay(5)函数引入一个小的延迟,避免程序过度占用 CPU 资源【运行效果】


本节围绕 MicroPython 开发环境搭建展开,主要涉及烧录固件以及安装和 Thonny。对于安装 Thonny 部分,详细阐述了其安装步骤与使用说明,为开发者构建 MicroPython 开发环境提供全面且清晰的指导。


...\ESP32-S3-LCD-1.28-Demo\Firmware\MicroPython-bin










| 示例程序 | 基础例程说明 |
|---|---|
| alien.py | 随机显示 “alien.jpg” 图像 |
| bitarray.py | 创建并展示多个随机位置的 “吃豆人” 精灵动画 |
| hello.py | 随机显示不同颜色的 “Hello!” 文本,并且可以通过循环切换不同的旋转角度 |
| hershey.py | 循环展示不同的问候语 |
| jpg.py | 轮流显示两张 JPEG 图片 |
| noto_fonts.py | 展示三种不同字体的名称 |
| pbitmap.py | 显示一个预编译的位图图像 |
| rotation.py | 循环展示不同旋转值下的文本显示效果 |
| scroll.py | 在显示屏上实现字符的平滑滚动显示 |





【程序说明】
【硬件连接】

【代码分析】
spi_interface:建立与显示屏的 SPI 通信width和height:设置显示屏分辨率reset_pin:连接显示屏的各种控制引脚rotation:设置初始旋转角度【运行效果】

【程序说明】
【硬件连接】
【代码分析】
SPRITE_STEPS范围内循环,对应精灵的不同动画帧或状态tft.map_bitarray_to_rgb565函数根据精灵的当前步数从SPRITE_BITMAPS中选取位图数据,将其转换为 RGB565 格式的缓冲区sprite。同时,指定了精灵的宽度以及前景色和背景色tft.blit_buffer函数将转换后的缓冲区绘制到显示屏上特定的位置,该位置由精灵的当前坐标确定,并指定了精灵的宽度和高度【运行效果】

【程序说明】
【硬件连接】
【代码分析】
tft.text函数在随机位置以随机颜色显示文本【运行效果】

【程序说明】
【硬件连接】
【代码分析】
【运行效果】

【程序说明】
【硬件连接】
【代码分析】
tft.jpg函数在特定位置以较慢方式显示图片,然后等待 5 秒【运行效果】


【程序说明】
【硬件连接】
【代码分析】
【运行效果】

【程序说明】
【硬件连接】
【代码分析】
tft.pbitmap显示预编译位图模块中的图像【运行效果】

【程序说明】
【硬件连接】
【代码分析】
【运行效果】

【程序说明】
【硬件连接】
【代码分析】
【运行效果】

...\ESP32-S3-LCD-1.28-Demo\Firmware\factory-bin
这种情况可能是由于 Flash 空白导致 USB 口不稳定,可长按BOOT按键,同时按下RESET,然后松开RESET,再松开BOOT按键,此时模块可进入下载模式烧录固件(程序)即可解决该情况。
①通过设备管理器查看: 按下Windows + R键打开“运行”对话框; 输入devmgmt.msc并按回车键打开设备管理器; 展开“端口(COM和LPT)”部分,这里会列出所有的COM端口及其当前状态。
②使用命令提示符查看: 打开命令提示符(CMD); 输入mode命令,这将显示所有COM端口的状态信息。
③查看硬件连接: 如果你已经连接了外部设备到COM口,通常设备会占用一个端口号,可以通过查看连接的硬件来确定使用的是哪个端口。
①使用dmesg命令查看: 打开终端。
②使用ls命令查看: 输入ls /dev/ttyS*或ls /dev/ttyUSB*来列出所有的串口设备。
③使用setserial命令查看: 输入setserial -g /dev/ttyS*来查看所有串口设备的配置信息。
GC9A01A
MX1.25 2P 连接器,可用于接入 3.7V电池,支持充放电
周一-周五(9:30-6:30)周六(9:30-5:30)
手机:13434470212
邮箱:services04@spotpear.cn
QQ:202004841
