ESP32-S3-Touch-LCD-2.8B
来自Waveshare Wiki
| |||||||||||||||||||||||||
| |||||||||||||||||||||||||
说明
产品概述
产品参数
参数名称 | 参数 |
接口 | USB Type-C |
主控芯片 | ESP32-S3 |
屏幕类型 | TFT |
屏幕控制芯片 | Display :ST7701 |
Touch :GT911 | |
板载设备 | 姿态传感器 :QMI8658 |
RTC时钟 :PCF85063 | |
Micro SD | |
Buzzer | |
电池充电管理模块 | |
产品尺寸 | 95.86±0.1(R) mm |
接口说明
- 12PIN 杜邦线接口
序号 | 引脚丝印 | 功能 | 说明 |
1 | GND | GND | 电源地 |
2 | VBus | 5V | USB供电 |
3 | D- | USB 差分线(GPIO19) | USB 差分线或用做GPIO |
4 | D+ | USB 差分线(GPIO20) | USB 差分线或用做GPIO |
5 | GND | GND | 电源地 |
6 | 3V3 | 3V3 | 对外输出3.3V |
7 | SCL | SCL(GPIO7) | I2C 时钟线,不可用作普通GPIO |
8 | SDA | SDA(GPIO15) | I2C 数据线,不可用作普通GPIO |
9 | TXD | TXD(GPIO43) | UART 数据发送或用作普通GPIO |
10 | RXD | RXD(GPIO44) | UART 数据接收或用作普通GPIO |
11 | NC | NC | 无引脚连接 |
12 | IO0 | GPIO0 | 空闲引脚引出 |
- I2C 接口
引脚丝印 | 功能 | 说明 |
GND | GND | 电源地 |
3V3 | 3V3 | 对外输出3.3V |
SCL | SCL(GPIO7) | I2C 时钟线,不可用作普通GPIO |
SDA | SDA(GPIO15) | I2C 数据线,不可用作普通GPIO |
- UART 接口
引脚丝印 | 功能 | 说明 |
GND | GND | 电源地 |
3V3 | 3V3 | 对外输出3.3V |
TXD | TXD(GPIO43) | UART 数据发送或用作普通GPIO |
RXD | RXD(GPIO44) | UART 数据接收或用作普通GPIO |
板载功能使用
内部硬件连接
LCD
LCD引脚 | ESP32S3 |
LCD_BL | GPIO6 |
LCD_RST | EXIO1 |
LCD_SDA | GPIO1 |
LCD_SCL | GPIO2 |
LCD_CS | EXIO3 |
PCLK | GPIO41 |
DE | GPIO40 |
VSYNC | GPIO39 |
HSYNC | GPIO38 |
B0 | NC |
B1 | GPIO5 |
B2 | GPIO45 |
B3 | GPIO48 |
B4 | GPIO47 |
B5 | GPIO21 |
G0 | GPIO14 |
G1 | GPIO13 |
G2 | GPIO12 |
G3 | GPIO11 |
G4 | GPIO10 |
G5 | GPIO9 |
R0 | NC |
R1 | GPIO46 |
R2 | GPIO3 |
R3 | GPIO8 |
R4 | GPIO18 |
R5 | GPIO17 |
TP_SDA | GPIO15 |
TP_SCL | GPIO7 |
TP_INT | GPIO16 |
TP_RST | EXIO2 |
SD Card
SD Card | ESP32S3 |
SD_D0 / MISO | GPIO42 |
SD_CMD / MOSI | GPIO1 |
SD_SCK / SCLK | GPIO2 |
SD_D3 / CS | EXIO4 |
SD_D1 | NC |
SD_D2 | NC |
QMI
QMI8658C | ESP32S3 |
IMU_SCL | GPIO7 |
IMU_SDA | GPIO15 |
IMU_INT1 | EXIO6 |
IMU_INT2 | EXIO5 |
RTC
PCF85063ATL | ESP32S3 |
RTC_SCL | GPIO7 |
RTC_SDA | GPIO15 |
RTC_INT | EXIO7 |
Buzzer
Buzzer | ESP32S3 |
Buzzer_Control | EXIO8 |
BAT
BAT | ESP32S3 |
BAT_ADC | GPIO4 |
ESP-IDF下使用
以下开发系统默认为Windows,推荐使用VSCode插件进行开发
使用VSCode插件开发
安装VSCode
- 打开VSCode官网的下载页面,选择对应系统和系统位数进行下载
- 运行安装包后,其余均可以默认安装,但这里为了后续的体验建议,建议在此处勾选框中的1、2、3项
- 第一二项开启后,可以直接通过鼠标右键文件或者目录打开VSCode,可以提高后续的使用体验.
- 第三项开启后,选择打开方式时,可以直接选择VSCode
安装Espressif IDF插件
- 注:当前插件最新版本为V1.6.4,为体验一致,用户可以选择与我们一样的版本
- 打开VSCode,使用快捷键 Shift+Ctrl+X ,进入插件管理器
- 在搜索栏中,输入 Espressif IDF ,选择对应的插件点击 install即可
- 使用快捷键 F1 ,输入
esp-idf: configure esp-idf extension
- 选择express(此教程针对第一次安装的用户,故只讲述初次的通用安装教程)
- 选择下载服务器,我们推荐国内用户使用Espressif作为你的下载服务器
- 选择想要现在的ESP-IDF版本,我们选择最新的V5.1.1
- 下面两个分别为ESP-IDF容器安装地址和ESP-IDF所需的工具安装地址,
- 注意:如果之前有安装过ESP-IDF,或者失败过的,请务必彻底删除文件或者创建全新的无中文路径
- 配置完成后,点击 install 进行下载
- 进入下载页面,其会自动安装对应工具与环境,稍等片刻即可
- 安装完成后,会进入以下界面,说明安装完成
ESP 例程使用教程
创建例程
- 使用快捷键 F1 ,输入
esp-idf:show examples projects
- 选择你当前的IDF版本
- 以Hello world例程为例
- ①选择对应例程
- ②其readme会说明该例程适用于什么芯片(下文有介绍例程怎么使用与文件结构,这里略)
- ③点击创建例程
修改COM口
- 此处显示使用对应的COM口,点击可以修改对应COM口
- 请根据设备对应COM口进行选择(可通过设备管理器查看)
- 若出现下载失败的情况请点击复位按键1秒以上或进入下载模式,等待 PC 端重新识别到设备后再次下载
- 选择使用的工程或者例程
- 然后我们的COM口就修改好了
修改驱动对象
- 此处显示的是使用的驱动对象,点击可以修改对应驱动对象
- 选择使用的工程或者例程
- 点击后需要稍等片刻
- 选择我们需要驱动的对象,也就是我们的主芯片为ESP32S3
- 选择openocd的路径,这里对我们没有影响,所以我们随便选择一个即可
其余状态栏简介
- ①SDK 配置编辑器,ESP-IDF很多功能与配置可以在其内修改
- ②全部清理,清空所有编译文件,
- ③编译
- ④当前下载方式,默认为UART
- ⑤烧录当前固件,请在编译后进行
- ⑥打开串口监视器,用于查看串口信息
- ⑦编译,烧录,打开串口监视器 一体按键(调试时最常用)
编译、烧录、串口监视
- 点击我们之前介绍的 编译,烧录,打开串口监视器按键
- 编译可能需要较长时间才能完成,尤其是在第一次编译时。
- 在此过程中,ESP-IDF可能会占用大量CPU资源,因此可能会导致系统卡顿。
- 若是新工程首次烧录程序,将需要选择下载方式,选择 UART
- 后续也可在 下载方式 处进行修改(点击即可弹出选项)
- 因为板载自动下载电路,无需手动操作即可自动下载
- 下载成功后,自动进入串口监视器,可以看到芯片输出对应的信息并提示10S后重启
示例程序
- 打开 VScode 软件,选择文件夹打开示例
- 选择提供的 ESP-IDF 下的示例,点击选择文件
- 连接设备后,选择好COM口和型号,点击下方编译并烧录即可实现程序控制
Arduino 下使用
- 请注意,Arduino 上的 ESP32 3.0.2 基于 ESP-IDF v5.1开发,与此前基于 ESP-IDF V4.X 有较大差异,在进行以下操作后,原先程序可以正常运行的程序可能需要进行一些调整才可使用
- 请注意,电脑用户名必须是英文,用户名为中文会导致编译出错
搭建环境
- 安装 Arduino IDE
- 完成 Arduino IDE 安装
- 下载提供的资源包
链接: https://pan.baidu.com/s/1dM08Yop8e35d-7TFbPnQdg?pwd=0755 提取码: 0755
- 开启显示隐藏文件
- 双击下载下来的资源包
- 将其解压至 "C:\Users\Waveshare\AppData\Local\Arduino15\packages" (其中 Waveshare 为电脑用户名)
- 解压完成,进入 "C:\Users\Waveshare\AppData\Local\Arduino15\packages" (其中 Waveshare 为电脑用户名),可看到 esp32-XIP-3.0.2 文件夹
- 完成环境搭建
修改项目文件夹路径
- 进入首选项
- 记录当前项目文件夹路径( 记录这个路径 后面要用到!!! 可以新建一个txt文件存放)
- 将修改项目文件夹路径为 下载的 示例程序 路径(请注意,示例程序存放的路径不能包含中文)
方式2:移植到现有项目下使用
说明:项目文件夹区分的是我们安装的库文件的位置,在工程编译时会根据引用的头文件去项目文件夹路径下的 libraries 文件夹查找库文件,所以修改项目文件夹路径就是为了确定工程编译时查找库文件要去哪个位置查找,默认的项目文件夹路径为 c:\Users\Waveshare\Documents\Arduino(Waveshare 为电脑用户名)即库文件存放的是在c:\Users\Waveshare\Documents\Arduino\librarie。
恢复项目文件夹路径
- 若有根据 方式1:直接使用Waveshare示例 操作过,则进行 恢复项目文件夹路径 ,否则忽略该小节内容
- 进入首选项,将项目文件夹路径修改为原来的路径(在上面的修改项目文件夹路径中要求记录的原路径,这边原本是 c:\Users\Waveshare\Documents\Arduino,具体根据客户上面记录的)
安装库文件
- 请注意此前是否已经安装过该库,若已安装,请存档原有的库,防止运行其他程序时出现错误失败
- 打开 Arduino IDE
- 搜索lvgl库并安装(此操作为了在 Arduino 环境中搭建库文件夹,若之前已经安装过其他库,即存在以下指的文件夹则不用执行这一步)
- 查看项目文件夹路径并进入文件夹
- 可以看到 libraries 文件夹(上面安装lvgl的目的就是为了生成项目文件夹下的 libraries 文件夹)
- 进入 libraries 文件夹,删除刚才下载的 lvgl 库(若前面没有安装则忽略这一步)
- 打开示例程序下的 libraries 文件夹
- 将文件夹内的库文件,复制到项目文件夹下的 libraries 文件夹下
示例程序
- 必须执行 搭建环境
- 打开 示例程序/Demo/Arduino 路径下的示例(双击 ino 后缀的文件即可打开)
- 选择型号 ESP32S3 Dev Module 与端口
- 设置板子参数
- 编译并烧录示例
- 烧录成功可观察到两个页面
- 页面 1 分别显示的参数如下
参数 | 功能 | 说明 |
SD Card | 显示 SD 卡的大小 | 请注意,仅支持 16GB 及以下的 SD 卡 |
Flash Size | 显示 Flash 大小 | 当前板载 16MB Flash |
Angular deflection | 显示板子角度偏移 | 显示三个方向的偏移 |
RTC Time | 显示 RTC 时间 | 显示当前 RTC 时间 RTC 时间与当前时间不一致,是因为掉电状态下并不能留存数据,如需要保持 RTC 时间正常,则需连接 RTC 电池并更新 RTC 时间 |
Wireless number | 显示扫描到的WIFI和蓝牙个数 | 扫描结束会在末尾显示 Scan Finish |
- 页面 2 为蜂鸣器控制页面
擦除设备Flash
- 解压软件资源包(Flash 调试软件)
- 打开 flash_download_tool_3.9.5.exe软件,选择ESP32-S3及USB
- 选择UART的端口号,点击 START (不选择任何 bin 文件)
- 等待烧录完成,点击擦除
- 等待擦除完成
资料
文档
原理图
ESP32-S3
- ESP32-S3技术参考手册(中文)
- ESP32-S3系列芯片技术规格书(中文)
- ESP32-S3 Series Datasheet(英文)
- ESP32-S3 Technical Reference Manua(英文)
程序
FAQ
这种情况可能是由于 Flash 空白导致 USB 口不稳定,可长按BOOT按键,同时按下RESET,然后松开RESET,再松开BOOT按键,此时模块可进入下载模式烧录固件(程序)即可解决该情况。
方法1:点击复位按键1秒以上,等待 PC 端重新识别到设备后再次下载
方法2:可长按BOOT按键,同时按下RESET,然后松开RESET,再松开BOOT按键,此时模块可进入下载模式,可解决大部分无法下载的问题。