ESP32-S3-Touch-LCD-2.8C

产品介绍

产品简介

ESP32-S3-Touch-LCD-2.8C 是一款支持 2.4GHz Wi-Fi 和蓝牙 BLE 5 的微控制器开发板。集成大容量 Flash 和 PSRAM,板载 2.8 英寸触摸屏,可流畅运行 LVGL 等 GUI 界面程序;结合多种外设接口,可快速开发 ESP32-S3 的 HMI 等应用。

产品特性

  • 搭载高性能 Xtensa 32 位 LX7 双核处理器,主频高达 240MHz
  • 支持 2.4 GHz Wi-Fi (802.11 b/g/n) 和 Bluetooth 5 (LE),板载天线
  • 板载 512KB SRAM、384KB ROM、8MB PSRAM 及 16MB Flash
  • 板载 2.8 英寸触摸屏,480 × 480 分辨率
  • 支持 I2C 接口控制触摸,支持中断
  • 引出 UART、I2C 以及部分 IO 接口,集成全速 USB 串口
  • 板载 QMI8658 六轴传感器、RTC 时钟传感器、Micro SD 卡座和电池充电管理模块等
  • 支持灵活时钟,多种电源模式等准确控制,实现多场景低功耗模式

资源简介

2.1 英寸电容触控屏开发板资源简介

1、ESP32-S3R8
   双核处理器,高达 240MHz 的运行频率

2、QST 姿态传感器
   QMI8658(六轴陀螺加速度计)

3、TCA9554PWR
   GPIO 扩展芯片,已全部使用,未引出

4、FSUSB42UMX
   UART 选择芯片:    连接 UART Type-C 时,禁用 4Pin UART,
   未连接 UART Type-C 时,启用 4Pin UART

5、CH343P
   USB 转 UART,并板载自动下载电路,
   无需多余操作即可实现程序烧录

6、16MB Flash

7、RTC 时钟芯片
   PCF85063 RTC 时钟

8、电池充电管理芯片

9、ME6217C33M5G
   低压降 LDO,电流 (Max) 800mA

10、USB Type-C 接口

11、系统电池接口
   MX1.25 2PIN 连接器,可用于接入3.7V 锂电池,支持充放电

12、12PIN 多功能接口

13、IPEX 1 代座子
   可通过拆焊电阻切换为使用外部天线

14、Micro SD 卡座

15、RTC 电池接口
   接入可充电的 RTC 电池

16、I2C 接口
   内接其他芯片,仅允许外接 I2C 设备,不可映射为其他功能

17、UART 接口
   在连接 USB TO UART Type-C 接口时,该接口不可用

18、USB TO UART Type-C 接口
   可用于下载程序、调试和供电

19、蜂鸣器

20、充电指示灯
   在连接系统电池时,充电为常亮,充满熄灭
   (未连接系统电池时,状态不定)

21、电源指示灯

22、电池供电控制开关

23、RESET 按键

24、BOOT 按键

接口介绍

  • 12PIN 杜邦线接口
序号引脚丝印功能说明
1GNDGND电源地
2VBus5VUSB供电
3D-USB 差分线(GPIO19)USB 差分线或用做GPIO
4D+USB 差分线(GPIO20)USB 差分线或用做GPIO
5GNDGND电源地
63V33V3对外输出3.3V
7SCLSCL(GPIO7)I2C 时钟线,不可用作普通GPIO
8SDASDA(GPIO15)I2C 数据线,不可用作普通GPIO
9TXDTXD(GPIO43)UART 数据发送或用作普通GPIO
10RXDRXD(GPIO44)UART 数据接收或用作普通GPIO
11NCNC无引脚连接
12IO0GPIO0空闲引脚引出
  • I2C 接口
引脚丝印功能说明
GNDGND电源地
3V33V3对外输出3.3V
SCLSCL(GPIO7)I2C 时钟线,不可用作普通GPIO
SDASDA(GPIO15)I2C 数据线,不可用作普通GPIO
  • UART 接口
引脚丝印功能说明
GNDGND电源地
3V33V3对外输出3.3V
TXDTXD(GPIO43)UART 数据发送或用作普通GPIO
RXDRXD(GPIO44)UART 数据接收或用作普通GPIO

产品尺寸

产品参数

参数名称参数
接口USB Type-C / UART Type-C
主控芯片ESP32-S3
屏幕类型TFT
屏幕控制芯片Display :ST7701
Touch :GT911
板载设备姿态传感器 :QMI8658
RTC时钟 :PCF85063
Micro SD
Buzzer
电池充电管理模块
产品尺寸95.86±0.1(R) mm

内部硬件连接


LCD

LCD引脚ESP32S3
LCD_BLGPIO6
LCD_RSTEXIO1
LCD_SDAGPIO1
LCD_SCLGPIO2
LCD_CSEXIO3
PCLKGPIO41
DEGPIO40
VSYNCGPIO39
HSYNCGPIO38
B0NC
B1GPIO5
B2GPIO45
B3GPIO48
B4GPIO47
B5GPIO21
G0GPIO14
G1GPIO13
G2GPIO12
G3GPIO11
G4GPIO10
G5GPIO9
R0NC
R1GPIO46
R2GPIO3
R3GPIO8
R4GPIO18
R5GPIO17
TP_SDAGPIO15
TP_SCLGPIO7
TP_INTGPIO16
TP_RSTEXIO2

SD Card

SD CardESP32S3
SD_D0 / MISOGPIO42
SD_CMD / MOSIGPIO1
SD_SCK / SCLKGPIO2
SD_D3 / CSEXIO4
SD_D1NC
SD_D2NC

QMI

QMI8658ESP32S3
IMU_SCLGPIO7
IMU_SDAGPIO15
IMU_INT1EXIO6
IMU_INT2EXIO5

RTC

PCF85063ATLESP32S3
RTC_SCLGPIO7
RTC_SDAGPIO15
RTC_INTEXIO7

Buzzer

BuzzerESP32S3
Buzzer_ControlEXIO8

BAT

BATESP32S3
BAT_ADCGPIO4

使用说明

ESP32-S3-Touch-LCD-2.8C 目前提供 Arduino IDE 和 ESP-IDF 两种开发工具和框架,提供了灵活的开发选择,你可以根据项目需求和个人习惯选择适合的开发工具。

开发工具介绍


器件准备

  • ESP32-S3-Touch-LCD-2.8C x1
  • SD卡 x1
  • USB线 type A公口 转 Type C公口 x1


在操作前,建议先浏览目录,快速了解文档结构。为顺利操作,请仔细阅读FAQ,提前了解可能的问题。文档中所有资料均提供超链接,方便下载。

Arduino开发

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

环境搭建

下载和安装 Arduino IDE

  • 点击访问Arduino官网,选择对应的系统和系统位数下载。
  • 运行安装程序,全部默认安装即可。
环境设置是在 Windows 10 系统下进行,Linux和Mac用户可访问Arduino-esp32环境搭建参考。(Mac下使用 需要安装MAC 驱动程序

安装 ESP32 开发板

  • 须先安装“esp32-XIP-3.0.2”开发板。
  • 仅支持“离线安装”。
  • 安装教程
  • esp32-XIP-3.0.2”开发板离线包,点击链接下载
链接: esp32-XIP-3.0.2离线包
提取码: 0755
  • 开启显示隐藏文件
  • 双击下载下来的资源包
  • 将其解压至 "C:\Users\Waveshare\AppData\Local\Arduino15\packages" (其中 Waveshare 为电脑用户名)
  • 解压完成,进入 "C:\Users\Waveshare\AppData\Local\Arduino15\packages" (其中 Waveshare 为电脑用户名),可看到 esp32-XIP-3.0.2 文件夹
  • 完成环境搭建
  • ESP32-S3-Touch-LCD-2.8C 所需开发板安装说明
板名称板安装要求注意
esp32-XIP-3.0.2“离线”安装必须根据安装教程进行“esp32-XIP-3.0.2”开发板安装

安装库

  • 在安装 Arduino 库时,通常有两种方式可供选择:在线安装 和 离线安装若库安装要求离线安装,则必须使用提供的库文件
    对于大多数库,用户可以通过 Arduino 软件的在线库管理器轻松搜索并安装。然而,一些开源库或自定义库未被同步到 Arduino 库管理器中,因此无法通过在线搜索获取。在这种情况下,用户只能通过离线方式手动安装这些库。
  • 库安装教程

在线安装

下文以安装“Adafruit NeoMatrix”库为例,若安装其他库,操作步骤类推。
  • 打开 Arduino IDE

①. 在侧边栏选择“LIBRARY MANAGER”(库管理);
②. 在搜索框中输入要安装的库名称,如“Adafruit NeoMatrix”;
③. 在方框处选择库版本,若无特殊要求,默认最新版即可,点击“INSTALL”(安装)。

在安装库时,若提示须安装其他依赖库,请点击“安装所有”。否则,可能会导致某些示例程序或程序无法正常编译。
  • 点击安装后,

①. 软件窗口会显示库的安装进度;
②. 安装完成后,库的状态会变成“x.x.x版本 installed”。

特别注意:如果需要卸载库,则找到对应的库,点击圆框处的“REMOVE”,等待卸载完成即可。
  • ESP32-S3-Touch-LCD-2.8C 库文件安装说明
库名称说明版本库安装要求
LVGL图形库v8.3.10“离线”安装
LVGL更多学习及使用可参考LVGL官方文档

示例程序

  • ESP32-S3-Touch-LCD-2.8C 示例程序
示例程序基础例程说明依赖库
LVGL_Arduino测试板载设备功能LVGL

LVGL_Arduino

【代码分析】


  • Driver_Init ()
    • 负责初始化多个硬件组件,包括闪存测试、电池初始化、I2C 总线初始化、特定芯片初始化、外部 IO 设置、背光初始化、实时时钟初始化和陀螺仪初始化等,为系统的正常运行做好硬件准备
  • Driver_Loop ()
    • 作为一个持续运行的任务,不断循环处理陀螺仪和实时时钟的操作,并获取电池电压。每 100 毫秒执行一次循环,避免过度占用 CPU 资源
  • setup ()
    • Arduino 的设置函数,进行一系列初始化操作。包括无线模块测试、硬件初始化、LCD 初始化、SD 卡初始化、LVGL 初始化,调用 LVGL 的示例函数,并创建一个任务来执行硬件循环操作
  • loop ()
    • Arduino 的主循环函数,主要调用 LVGL 的循环处理函数,并进行 5 毫秒的延迟,确保系统的图形界面能够持续更新

【代码烧录】


  • 选择型号 Waveshare ESP32S3 XIP 与端口
  • 设置开发板参数

ESP32-S3-Touch-LCD-2.8C-demo-01.png

  • 参数说明
参数功能说明
SD Card显示 SD 卡的大小连接SD卡,若识别失败请将SD卡格式化为FAT32格式(首次识别失败请等待一会后复位下再查看)
Flash Size显示 Flash 大小当前板载 16MB Flash
Battery Voltage电池电压连接电池时可检测到电池电压
Angular deflection显示板子角度偏移显示三个方向的偏移
RTC Time显示 RTC 时间显示当前 RTC 时间
RTC 时间与当前时间不一致,是因为掉电状态下并不能留存数据,如需要保持 RTC 时间正常,则需连接 RTC 电池并更新 RTC 时间
Wireless scan显示扫描到的WIFI个数扫描结束会在末尾显示 Scan Finish
The buzzer test蜂鸣器控制页面可控制蜂鸣器开关

ESP-IDF开发

本章介绍 ESP-IDF 环境搭建,包括 Visual Studio、Espressif IDF插件的安装,程序编译下载及示例程序测试,帮助用户掌握开发板,便于二次开发。

环境搭建

下载和安装 Visual Studio

  • 打开VScode官网的下载页面,选择对应系统和系统位数进行下载
  • 运行安装包后,其余均可以默认安装,但这里为了后续的体验建议,建议在此处勾选框中的1、2、3项
    • 第一二项开启后,可以直接通过鼠标右键文件或者目录打开VSCode,可以提高后续的使用体验.
    • 第三项开启后,选择打开方式时,可以直接选择VSCode
环境设置是在 Windows 10 系统下进行,Linux和Mac用户可访问ESP-IDF环境搭建参考

安装Espressif IDF插件

  • 国内部分区域安装,一般推荐“在线安装”, 若因网络因素无法在线安装,则使用“离线安装
  • 安装Espressif IDF插件教程

在线安装

  • 打开VSCode,点击左侧的扩展,在扩展搜索并安装C/C++,ESP-IDF。可根据需求安装其他扩展
  • 使用快捷键 F1 ,输入
esp-idf: configure esp-idf extension
  • 选择express(此教程针对第一次安装的用户,故只讲述初次的通用安装教程)
  • 选择下载服务器,我们推荐国内用户使用Espressif作为你的下载服务器
  • 选择想要的ESP-IDF版本,一般根据开发板要求选择支持的版本,若无要求推荐用最新的release version
  • 下面两个分别为ESP-IDF容器安装地址和ESP-IDF所需的工具安装地址。
  • 配置完成后,点击 install 进行下载
  • 进入下载页面,其会自动安装对应工具与环境,稍等片刻即可
  • 安装完成后,会进入以下界面,说明安装完成
注意:如果之前有安装过ESP-IDF,或者失败过的,请务必彻底删除文件或者创建全新的无中文路径。
  • ESP32-S3-Touch-LCD-2.8C 所需Espressif IDF版本说明
插件名称插件安装要求版本号要求
Espressif IDF“离线”安装/“在线”安装≥5.3.1

示例程序

  • ESP32-S3-Touch-LCD-2.8C 示例程序
示例程序基础例程说明
ESP32-S3-Touch-LCD-2.8C-Test测试板载设备功能

ESP32-S3-Touch-LCD-2.8C-Test

【硬件连接】


  • 将SD卡插入开发板中
  • 将开发板接入电脑

【代码分析】


  • Driver_Init()
    • 此函数进行硬件初始化并创建一个任务。它初始化了闪存(可能是检查或准备)、电池、I2C 总线、实时时钟、陀螺仪和外部 IO。然后创建一个任务 Driver_Loop ,该任务持续处理陀螺仪、实时时钟和获取电池电压,每 100 毫秒执行一次循环操作。
  • Driver_Loop()
    • 作为一个持续运行的任务,循环处理陀螺仪和实时时钟的相关操作,并获取电池电压。通过这种方式确保这些硬件设备的状态持续更新。
  • app_main ():驱动板载设备
    • 这是程序的主入口函数。首先初始化无线模块,然后调用 Driver_Init 进行硬件初始化。接着依次初始化 LCD 显示屏、触摸输入、SD 卡和 LVGL 图形库。调用 LVGL 的示例函数 Lvgl_Example1 展示特定图形界面效果。在主循环中,每 10 毫秒延迟一次并调用 lv_timer_handler 处理 LVGL 的定时器事件,以确保图形界面的正常运行和更新。
  • 参数说明
参数功能说明
SD Card显示 SD 卡的大小连接SD卡,若识别失败请将SD卡格式化为FAT32格式(首次识别失败请等待一会后复位下再查看)
Flash Size显示 Flash 大小当前板载 16MB Flash
Battery Voltage电池电压连接电池时可检测到电池电压
Angular deflection显示板子角度偏移显示三个方向的偏移
RTC Time显示 RTC 时间显示当前 RTC 时间
RTC 时间与当前时间不一致,是因为掉电状态下并不能留存数据,如需要保持 RTC 时间正常,则需连接 RTC 电池并更新 RTC 时间
Wireless scan显示扫描到的WIFI个数扫描结束会在末尾显示 Scan Finish
The buzzer test蜂鸣器控制页面可控制蜂鸣器开关

Flash固件的烧录与擦除


  • 当前示例程序有提供测试固件,可通过直接烧录测试固件来测试板载设备功能正常与否
  • bin文件路径:
    ...\ESP32-S3-Touch-LCD-2.8C-Demo\Firmware\bin
设备出现程序运行不畅或未知错误时,Flash 固件烧录和擦除可作为解决方案。烧录能够为设备注入经过测试的固件代码,使设备恢复正常;擦除可清除设备的错误残留,为新程序写入创造条件。借助 Flash 固件烧录和擦除,开启设备稳定运行之路。

Flash固件的烧录

下文以烧录“ESP32-S3-Touch-LCD-2.8 bin文件”为例,若烧录其他bin文件,操作步骤类推。
  • 解压软件资源包(flash_download_tool_3.9.7
  • 打开 flash_download_tool_3.9.7.exe软件,根据开发板的MCU和接口选择,比如: ESP32-S3 及 USB(大部分设备选择USB,具体以产品硬件设计为准)
  • 参数设置

①.选择与开发板所对应的COM口
②.选择BAUD为最高的1152000
③.点击“...”选择waveshare提供的bin文件,并手动输入下载地址“0x00”最左侧勾选
④.开始烧录

  • 烧录完成(烧录过程需要一定时间,请耐心等待)
若出现一直处于“等待上电同步中”的情况,需按住“boot”重新上电,进下载模式即可解决

Flash固件的擦除

Flash擦除是独立进行的。因曾出现过直接擦除而没有擦除干净的情况,所以采用“先烧录再擦除”的方法在一定程度上可以避免擦除不干净的情况。
  • 解压软件资源包(flash_download_tool_3.9.7
  • 打开 flash_download_tool_3.9.7.exe软件,根据开发板的MCU和接口选择,比如: ESP32-S3 及 USB(大部分设备选择USB,具体以产品硬件设计为准)
  • 选择设备对应的端口号,点击 START (不选择任何 bin 文件)
  • 等待烧录完成,点击擦除
  • 等待擦除完成


资料

原理图

示例程序

工程图纸

驱动

数据手册

ESP32-S3

显示屏

其他器件

软件工具

Arduino

VScode

固件烧录工具

其他资料链接

FAQ

  • 点击复位按键1秒以上,等待 PC 端重新识别到设备后再次下载
  • 可长按BOOT按键,同时按下RESET,然后松开RESET,再松开BOOT按键,此时模块可进入下载模式,可解决大部分无法下载的问题。


这种情况可能是由于 Flash 空白导致 USB 口不稳定,可长按BOOT按键,同时按下RESET,然后松开RESET,再松开BOOT按键,此时模块可进入下载模式烧录固件(程序)即可解决该情况。


  • 首次编译很慢属于正常情况,耐心等待即可


  • 部分AppData文件夹是默认隐藏的,可以设置为显示。
  • 英文系统:资源管理器->View->勾选“Hidden items”
  • 中文系统:文件资源管理器->查看->显示->勾选“隐藏的项目”


  • Windows系统:

①通过设备管理器查看: 按下Windows + R键打开“运行”对话框; 输入devmgmt.msc并按回车键打开设备管理器; 展开“端口(COM和LPT)”部分,这里会列出所有的COM端口及其当前状态。
②使用命令提示符查看: 打开命令提示符(CMD); 输入mode命令,这将显示所有COM端口的状态信息。
③查看硬件连接: 如果你已经连接了外部设备到COM口,通常设备会占用一个端口号,可以通过查看连接的硬件来确定使用的是哪个端口。

  • Linux系统:

①使用dmesg命令查看: 打开终端。
②使用ls命令查看: 输入ls /dev/ttyS*或ls /dev/ttyUSB*来列出所有的串口设备。
③使用setserial命令查看: 输入setserial -g /dev/ttyS*来查看所有串口设备的配置信息。


  • 此情况为没有安装SD卡或SD卡无法被识别,若出现该情况,请等待一段时间后复位设备,仍不可解决请将SD卡格式化为FAT32格式,若依旧失败请更换其他SD卡



  • 查看原理图,针对不同开发板的Type-C接口,对应代码处理输出不同:
    • USB直出的开发板,支持printf函数打印输出,若想支持Serial函数打印输出则需要使能USB CDC On Boot功能或者HWCDC声明
    • UART转USB的开发板,支持printf函数和Serial函数打印输出,无需使能USB CDC On Boot


技术支持

周一-周五(9:30-6:30)周六(9:30-5:30)

手机:13434470212

邮箱:services04@spotpear.cn

QQ:202004841