ESP32-S3-Touch-LCD-1.28 是一款微雪 (Waveshare) 设计的低成本,高性能的微控制器开发板。其中板载了 1.28 英寸电容触摸 LCD 屏、锂电池充电芯片、六轴传感器(三轴加速度计与三轴陀螺仪)等外设,采用的 ESP32-S3R2 是集成了低功耗 Wi-Fi 和 BLE 5.0 的系统级芯片(SoC),此外还具有外部 16MB Flash 和 2MB PSRAM。Soc内部的硬件加密加速器、RNG、HMAC 和数字签名 (Digital Signature) 模块,可以满足物联网的安全要求。多种低功耗工作状态满足在物联网 (IoT)、移动设备、可穿戴电子设备、智能家居等应用场景的功耗需求。
1、ESP32-S3R2 2、W25Q128JVSIQ 3、CH343P 4、ME6217C33M5G 5、ETA6096 |
7、MX1.25 电池接口 8、USB Type-C 接口 9、RESET 按键 10、BOOT 按键 |
ESP32-S3R2 | LCD | SH1.0 | MX1.25 | QMI8658 | other |
GPIO0 | BOOT0 | ||||
GPIO1 | ADC | ||||
GPIO2 | LCD_BL | ||||
GPIO3 | INT2 | ||||
GPIO4 | INT1 | MOSFET1_CS | |||
GPIO5 | TP_INT | MOSFET2_CS | |||
GPIO6 | TP_SDA | SDA | |||
GPIO7 | TP_SCL | SCL | |||
GPIO8 | LCD_DC | ||||
GPIO9 | LCD_CS | ||||
GPIO10 | LCD_CLK | ||||
GPIO11 | LCD_MOSI | ||||
GPIO12 | LCD_MISO | ||||
GPIO13 | TP_RST | ||||
GPIO14 | LCD_RST | ||||
GPIO15 | GPIO15 | ||||
GPIO16 | GPIO16 | ||||
GPIO17 | GPIO17 | ||||
GPIO18 | GPIO18 | ||||
GPIO19 | |||||
GPIO20 | |||||
GPIO21 | GPIO21 | ||||
GPIO33 | GPIO33 |
LCD参数 | |||
触摸芯片 | CST816S | 触摸接口 | I2C |
显示芯片 | 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-Touch-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-Touch-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 |
【程序说明】
【硬件连接】
【代码分析】
【运行效果】
【程序说明】
【硬件连接】
【代码分析】
lv_disp_drv_t *disp_drv
::提供的显示驱动结构体指针,包含了与显示相关的信息和函数指针。在这个函数中,用于向 LVGL 通知刷新完成const lv_area_t *area
:定义的区域结构体指针,表示需要刷新的区域。这个区域是相对于整个显示屏幕的一个矩形区域lv_color_t *color_p
:定义的颜色结构体指针,表示要在刷新区域内显示的颜色数据。在这个函数中,通过将这些颜色数据写入 TFT 缓冲区,完成绘制lv_indev_drv_t *indev_drv
:LVGL 中的输入设备驱动结构体指针。该结构体包含了有关输入设备的信息和回调函数lv_indev_data_t *data
:LVGL 中的输入设备数据结构体指针。该结构体用于存储输入设备的状态和数据,包括当前的触摸状态(按下或释放)以及触摸点的坐标【运行效果】
【程序说明】
【硬件连接】
【代码分析】
【运行效果】
【程序说明】
【硬件连接】
【代码分析】
tft
和触摸传感器touch
,包括设置显示屏的旋转方向和可能的触摸校准数据draw_buf
和显示驱动disp_drv
,设置显示分辨率、刷新回调函数等,并将显示驱动注册到 LVGLindev_drv
,设置为指针类型并指定触摸读取回调函数,然后注册输入设备驱动label
,设置文本字体、文本内容(支持颜色重绘),并将其居中显示在屏幕上lv_timer_handler()
函数,让 LVGL 图形库处理其内部的定时任务和事件delay(5)
函数引入一个小的延迟,避免程序过度占用 CPU 资源【运行效果】
本节围绕 MicroPython 开发环境搭建展开,主要涉及烧录固件以及安装和 Thonny。对于安装 Thonny 部分,详细阐述了其安装步骤与使用说明,为开发者构建 MicroPython 开发环境提供全面且清晰的指导。
...\ESP32-S3-Touch-LCD-1.28-Demo\Firmware\MicroPython-bin
示例程序 | 基础例程说明 |
---|---|
cst816_example.py | 触摸屏幕,打印相应坐标 |
alien.py | 随机显示 “alien.jpg” 图像 |
bitarray.py | 创建并展示多个随机位置的 “吃豆人” 精灵动画 |
hello.py | 随机显示不同颜色的 “Hello!” 文本,并且可以通过循环切换不同的旋转角度 |
hershey.py | 循环展示不同的问候语 |
jpg.py | 轮流显示两张 JPEG 图片 |
noto_fonts.py | 展示三种不同字体的名称 |
pbitmap.py | 显示一个预编译的位图图像 |
rotation.py | 循环展示不同旋转值下的文本显示效果 |
scroll.py | 在显示屏上实现字符的平滑滚动显示 |
在所给例程中,bluenarble.py、cst816.py、cst816_example.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-Touch-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