】资料
文档
ESP32 Arduino Core’s documentation
程序
ESP32-S3-Touch-LCD-7_libraries
软件
数据手册
】说明
】产品简介
ESP32-S3-Touch-LCD-7 是一款微雪 (Waveshare) 设计的低成本,高性能的微控制器开发板。其支持 2.4GHz WiFi 和 BLE 5,集成大容量 Flash 和 PSRAM,板载 7 英寸电容触摸LCD屏,可流畅运行 LVGL 等 GUI 界面程序;结合多种外设接口(如:CAN、I2C、RS485和Sensor等接口),快速开发 ESP32-S3 的 HMI 等应用。多种功能与接口满足在物联网 (IoT)、移动设备、智能家居等应用场景的功耗需求。
】产品特性
搭载高性能 Xtensa 32 位 LX7 双核处理器,主频高达 240MHz
支持 2.4 GHz Wi-Fi (802.11 b/g/n) 和 Bluetooth 5 (LE),板载天线
内置 512KB SRAM 和 384KB ROM,叠封 8MB Flash 和 8MB PSRAM
板载 7 英寸电容触摸屏,800 × 480 分辨率,65K 彩色
支持 I2C 接口控制电容触摸,5 点触控,支持中断
板载 CAN、RS485、I2C 接口和 Micro SD 卡座等,集成全速 USB 串口
支持灵活时钟,模块电源单独设置等精准控制,实现多场景低功耗模式
】硬件说明
接口说明
[] UART 接口 :使用 CH343P 芯片用于 USB 转 UART 连接 ESP32-S3 的 UART_TXD(GPIO43),UART_RXD(GPIO44) ,用于固件烧录和日志打印
[] USB 接口:GPIO19(DP) GPIO20(DN) 默认作为 ESP32-S3 的 USB 引脚 ,接口可以使用 UVC 等协议摄像头,UVC驱动请查阅连接
[] Sensor 接口:此接口连接 GPIO6 作 ADC 使用,可以接入 Sensor套件等器件
[] CAN 接口:CAN 接口引脚和 USB 接口引脚复用,使用 FSUSB42UMX 芯片切换,默认使用 USB 接口(FSUSB42UMX的USB_SEL引脚为LOW时)
[] I2C 接口:ESP32-S3 提供多路硬件 I2C ,目前使用 GPIO8(SDA),GPIO9(SCL) 引脚做 I2C 总线挂载 IO 扩展芯片、触摸接口,I2C接口
[] RS485 接口:开发板板载 RS485 接口电路,可直接接入 RS485 设备进行通信,RS485电路收发模式自动切换
[] PH2.0 电池接口:开发板使用高效充放电管理芯片 CS8501 ,可将单节锂电池升压到 5V ,目前充电电流为 580mA,用户可更换 R45 电阻更改充电电流,详情请查阅原理图
引脚连接
ESP32-S3-WROOM-x | LCD | USB | SD | UART | CAN | Sensor | |
GPIO0 | G3 | ||||||
GPIO1 | R3 | ||||||
GPIO2 | R4 | ||||||
GPIO3 | VSYNC | ||||||
GPIO4 | TP_IRQ | ||||||
GPIO5 | DE | ||||||
GPIO6 | AD | ||||||
GPIO7 | PCLK | ||||||
GPIO8 | TP_SDA | ||||||
GPIO9 | TP_SCL | ||||||
GPIO10 | B7 | ||||||
GPIO11 | MOSI | ||||||
GPIO12 | SCK | ||||||
GPIO13 | MISO | ||||||
GPIO14 | B3 | ||||||
GPIO15 | RS485_TX | ||||||
GPIO16 | RS485_RX | ||||||
GPIO17 | B6 | ||||||
GPIO18 | B5 | ||||||
GPIO19 | USB_DN | CANRX | |||||
---|---|---|---|---|---|---|---|
GPIO20 | USB_DP | CANTX | |||||
GPIO21 | G7 | ||||||
GPIO38 | B4 | ||||||
GPIO39 | G2 | ||||||
GPIO40 | R7 | ||||||
GPIO41 | R6 | ||||||
GPIO42 | R5 | ||||||
GPIO43 | UART_TXD | ||||||
GPIO44 | UART_RXD | ||||||
GPIO45 | G4 | ||||||
GPIO46 | HSYNC | ||||||
GPIO47 | G6 | ||||||
GPIO48 | G5 | ||||||
CH422G | - | - | - | - | - | - | |
EXIO1 | TP_RST | ||||||
EXIO2 | DISP | ||||||
EXIO3 | LCD_RST | ||||||
EXIO4 | SD_CS | ||||||
EXIO5 | USB_SEL(LOW) | USB_SEL(HIGH) |
硬件连接
[] 开发板板载自动下载电路,UART1 丝印处 Type C 端口用于程序下载和日志打印,下载程序后,按 RESET 按键运行程序
[] UART2是PH2.0 座子引出串口,跟UART1的串口相同,可以通过板子上的开关进行选择,如果使用UART2下载程序,需要手动下载
[] 使用时注意 PCB 天线区域,避免其它金属,塑料件贴合 PCB 天线
[]开发板使用 PH2.0 座子引出 ADC ,CAN,I2C,RS485 外设引脚,使用 PH2.0 转 2.54mm 杜邦公头配件连接传感器件
[] 7inch 屏幕占用绝大多数 GPIO,开发板使用 CH422G 芯片扩展 IO,用于复位,关闭打开背光等
[] CAN 和 RS485 外设默认使用跳冒连接 120 欧姆电阻,可选 NC 取消终端电阻连接
[] SD 卡使用 SPI 通信,注意 SD_CS 引脚需要由 CH422G 的 EXIO4 驱动
其它说明
目前在 ESP-IDF v5.3 下使用单核跑 LVGL benchamark 示例的平均帧率上限为 26, 对应接口帧率为 41 (PCLK 21 MHz),编译前需要通过menuconfig 对ESP32 跟 LVGL进行配置:
CONFIG_FREERTOS_HZ=1000
CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240=y
CONFIG_ESPTOOLPY_FLASHMODE_QIO=y
CONFIG_ESPTOOLPY_FLASHFREQ_120M=y [需要与 PSRAM 保持一致]
CONFIG_SPIRAM_MODE_OCT=y
CONFIG_IDF_EXPERIMENTAL_FEATURES=y and CONFIG_SPIRAM_SPEED_120M=y [需要与 FLASH 保持一致]
CONFIG_SPIRAM_FETCH_INSTRUCTIONS=y
CONFIG_SPIRAM_RODATA=y
CONFIG_ESP32S3_DATA_CACHE_LINE_64B=y
CONFIG_COMPILER_OPTIMIZATION_PERF=y
#以下 LVGL 配置项对帧率提升有帮助 (LVGL v8.3):
#define LV_MEM_CUSTOM 1 or CONFIG_LV_MEM_CUSTOM=y
#define LV_MEMCPY_MEMSET_STD 1 or CONFIG_LV_MEMCPY_MEMSET_STD=y
#define LV_ATTRIBUTE_FAST_MEM IRAM_ATTR or CONFIG_LV_ATTRIBUTE_FAST_MEM=y
详细 LCD 及 LVGL 性能说明,请参考文档。
PH2.0 锂电池座子只支持单节 3.7V 锂电池,勿使用多组电池包同时接入充放电,建议单节容量在 2000mAH 以下
产品尺寸
】环境设置
ESP32 系列开发板的软件框架成熟,可使用 C/C++(Arduino,ESP-IDF),MicroPython 等进行快速开发产品原型,以下简要介绍:
[] 乐鑫官方的 C/C++ 库方便快速安装,中国大陆用户遇到下载问题请查看FAQ解决
ESP32系列 的 Arduino 开发手册
ESP32系列 的 ESP-IDF 开发手册
[] MicroPython 是 Python 3 编程语言的精简高效实现,其中包括 Python 标准库的一小部分,并且经过优化,可在微控制器和受限环境中运行。(当前不支持此产品的开发)
Micropython 相关应用开发参考开发文档
Micropython 的 Github 库可以进行重新编译作定制开发
[] 环境设置是在 Windows 10 系统下进行,用户可以选择使用 Arduino 或 Visual Studio Code(ESP-IDF) 作为 IDE 进行开发,Mac/Linux 操作系统用户请参考官方说明
ESP-IDF
Arduino
1. 下载安装Arduino IDE,注意默认配置及全英文路径
2. Arduino IDE 安装 ESP32 库,详细安装过程如下,相关资料请点击链接参考
[] 中国大陆安装:
1. 下载离线包esp32.exe(提取码:tjpx) 后双击安装,设置好arduino器件包目录:
C:\Users\{用户名}\AppData\Local\Arduino15\packages\
以用户名为waveshare为例
C:\Users\waveshare\AppData\Local\Arduino15\packages\
2. 安装完离线包后,打开 Arduino IDE,在 File->Preferences 下 Settings 界面的 Additional boards manager URLs 处填写下面链接后保存
https://arduino.me/packages/esp32.json
3.在开发板管理器里面搜索ESP32,如果出现3.0.0-alppha3 已安装,则离线包安装成功
[] 其它地区安装:
1. 在 File->Preferences 下 Settings 界面的 Additional boards manager URLs 处填写下面链接后保存
https://espressif.github.io/arduino-esp32/package_esp32_dev_index.json
2. 在 Board Manager 中搜索 esp32 ,对3.0.0版本进行安装,安装完成后重启 Arduino IDE 生效
3. 打开 Arduino IDE,注意菜单栏中 Tools 选择对应 Flash(8MB) 和使能 PSRAM(8MB OPI),如下图所示
库安装
lvgl 库安装后需要配置文件,建议直接使用ESP32-S3-Touch-LCD-7_libraries中的ESP32_Display_Panel,ESP32_IO_Expander,lvgl 文件夹与lv_conf.h文件复制到 C:\Users\xxxx\Documents\Arduino\libraries 目录下,xxxx 代表您电脑上用户名,注意甄别
复制完如下:
】示例程序
】Arduino
注意:在使用Arduino例程前,请先检查Arduino IDE环境与下载设置是否正确配置,具体操作可查看Arduino环境配置
UART_Test
UART_Test 示例,用于测试UART 接口的使用,此接口连接GPIO43(TXD)、GPIO44(RXD) 作 UART0 使用
[] 烧录代码后,USB to Type C线接入“UART”Type C接口,打开串口调试助手,送消息给ESP32-S3-Touch-LCD-7,ESP32-S3-Touch-LCD-7会把收到的消息返回给串口调试助手,注意需要选择正确的COM口和波特率,发送消息前勾选“加回车换行/AddCrLf”
Sensor_AD
Sensor_AD 示例,用于测试Sensor AD 座子的使用,此接口连接 GPIO6 作 ADC 使用,可以接入 Sensor套件等器件
[] 烧录代码后,Sensor AD座子连接“HY2.0 2P 转杜邦公头 3P 10cm”,可打开串口调试助手观察AD引脚读取的数据,ADC analog value为读取的ADC模拟值,ADC millivolts value为ADC转化的毫伏值
[] 将AD引脚与GND引脚短接,读取的值如下图所示:
将AD引脚与3V3引脚短接,读取的值如下图所示:
I2C_Test
I2C_Test 示例,用于测试I2C 座子的使用,此接口连接GPIO8(SDA)、GPIO9(SCL) 作 I2C通讯 使用
[] 使用该例程可以扫描I2C设备的从机地址
[] 烧录代码后,I2C座子连接“HY2.0 2P 转杜邦公头 4P 10cm”,连接I2C设备,打开串口调试助手,可看到被扫描出来的I2C地址
RS485_Test
RS485_Test 示例,用于测试RS-485 座子的使用,此接口连接GPIO15(TXD)、GPIO16(RXD) 作 RS485通讯 使用
[] 烧录代码后,该例程需要使用到USB转RS485转换器,RS-485 座子连接“HY2.0 2P 转杜邦公头 2P 10cm”,再连接USB转RS485转换器,USB转RS485转换器连接电脑
[] 打开串口调试助手,发送RS485消息给ESP32-S3-Touch-LCD-7,ESP32-S3-Touch-LCD-7会把收到的消息返回给串口调试助手,注意需要选择正确的COM口和波特率,发送消息前勾选“加回车换行/AddCrLf”
SD_Test
SD_Test 示例,用于测试SD卡座的使用,需先插入SD卡,烧录代码后对SD卡进行读写操作
[] 烧录代码后,ESP32-S3-Touch-LCD-7会识别SD卡的类型和大小,再对进行文件的增删改查
TWAItransmit
TWAItransmit 示例,用于测试CAN卡座的使用,此接口连接GPIO20(TXD)、GPIO19(RXD) 作 CAN通讯 使用
[] 烧录代码后,使用 “HY2.0 2P 转杜邦公头 2P 红黑 10cm” 线缆对应连接 ESP32-S3-Touch-LCD-7 和 USB-CAN-A 的 CAN H 和 CAN L引脚
[] 打开串口调试助手,可以看到Esp32-s3-touch-lcd-7已经开始发送CAN消息
USB-CAN-A 连接电脑,打开USB-CAN-A_TOOL_2.0 上位机,选择对应COM口, 按下图所示 2000000 端口波特率,CAN波特率 50.000Kbps,即可看到Esp32-s3-touch-lcd-7发送的CAN消息
TWAIreceive
TWAIreceive 示例,用于测试CAN卡座的使用,此接口连接GPIO20(TXD)、GPIO19(RXD) 作 CAN通讯 使用
[] 烧录代码后,使用 “HY2.0 2P 转杜邦公头 2P 红黑 10cm” 线缆对应连接 ESP32-S3-Touch-LCD-7 和 USB-CAN-A 的 CAN H 和 CAN L引脚
[] USB-CAN-A 连接电脑,打开USB-CAN-A_TOOL_2.0 上位机,选择对应COM口, 按下图所示 2000000 端口波特率,CAN波特率 500.000Kbps,即可发送CAN消息至Esp32-s3-touch-lcd-7
打开串口调试助手,可以看到Esp32-s3-touch-lcd-7已经开始接收CAN消息(若接收报错,可多进行几次复位与软件重新开启设备,耐心等待)
lvgl_Porting
lvgl_Porting 示例,用于测试RGB触摸屏幕的使用
[] 烧录代码后,可进行一系列触屏操作,是可供用户LVGL移植的例程(若烧录代码后,屏幕无反应,可查看是否有在Arduino IDE -> Tools正确配置:选择对应 Flash(8MB) 和使能 PSRAM(8MB OPI))
DrawColorBar
DrawColorBar 示例,用于测试RGB屏幕的使用
[] 烧录代码后,可观察屏幕显示蓝色、绿色、红色的色带(若烧录代码后,屏幕无反应,可查看是否有在Arduino IDE -> Tools正确配置:选择对应 Flash(8MB) 和使能 PSRAM(8MB OPI))
】ESP-IDF
注意:在使用ESP-IDF例程前,请先检查ESP-IDF环境与下载设置是否正确配置,具体操作可查看ESP-IDF环境配置
UART_Test
UART_Test 示例,用于测试UART 接口的使用,此接口连接GPIO43(TXD)、GPIO44(RXD) 作 UART0 使用
[] 烧录代码后,USB to Type C线接入“UART”Type C接口,打开串口调试助手,送消息给ESP32-S3-Touch-LCD-7,ESP32-S3-Touch-LCD-7会把收到的消息返回给串口调试助手,注意需要选择正确的COM口和波特率,发送消息前勾选“加回车换行/AddCrLf”
Sensor_AD
[] Sensor_AD 示例,用于测试Sensor AD 座子的使用,此接口连接 GPIO6 作 ADC 使用,可以接入 Sensor套件等器件
[] 烧录代码后,Sensor AD座子连接“HY2.0 2P 转杜邦公头 3P 10cm”,可打开串口调试助手观察AD引脚读取的数据,ADC analog value为读取的ADC模拟值,ADC millivolts value为ADC转化的毫伏值
将AD引脚与GND引脚短接,读取的值如下图所示:
将AD引脚与3V3引脚短接,读取的值如下图所示:
I2C_Test
I2C_Test 示例,用于测试I2C 座子的使用,扫描各种I2C设备的地址
[] 烧录代码后,连接 I2C设备(本文使用BME680 Environmental Sensor) 和 ESP32-S3-Touch-LCD-7 对应引脚,打开串口调试助手 选择 115200 波特率打开选择对应 COM 口通信(可先将ESP-IDF的COM口关闭,否则会占用COM口导致无法打开串口)
按下 ESP32-S3-Touch-LCD-7 的 Reset 按键,SSCOM 会打印信息,按如下图所示输入 i2cdetect ,则会打印 77,I2C 座子测试通过
RS485_Test
RS485_Test 示例,用于测试RS 485座子的使用
[] 烧录代码后,对应连接 USB TO RS485 和 ESP32-S3-Touch-LCD-7 的 A 和 B 引脚,USB TO RS485 连接电脑后打开 串口调试助手 选择对应 COM 口通信
按如下图所示选择 115200 波特率,发送任意字符则会回环显示,RS485座子测试通过
TWAItransmit
TWAItransmit 示例,用于测试CAN卡座的使用,此接口连接GPIO20(TXD)、GPIO19(RXD) 作 CAN通讯 使用
[] 烧录代码后,使用 “HY2.0 2P 转杜邦公头 2P 红黑 10cm” 线缆对应连接 ESP32-S3-Touch-LCD-7 和 USB-CAN-A 的 CAN H 和 CAN L引脚
打开串口调试助手,可以看到Esp32-s3-touch-lcd-7已经开始发送CAN消息
USB-CAN-A 连接电脑,打开USB-CAN-A_TOOL_2.0 上位机,选择对应COM口, 按下图所示 2000000 端口波特率,CAN波特率 50.000Kbps,即可看到Esp32-s3-touch-lcd-7发送的CAN消息
TWAIreceive
[] TWAIreceive 示例,用于测试CAN卡座的使用,此接口连接GPIO20(TXD)、GPIO19(RXD) 作 CAN通讯 使用
烧录代码后,使用 “HY2.0 2P 转杜邦公头 2P 红黑 10cm” 线缆对应连接 ESP32-S3-Touch-LCD-7 和 USB-CAN-A 的 CAN H 和 CAN L引脚
[] USB-CAN-A 连接电脑,打开USB-CAN-A_TOOL_2.0 上位机,选择对应COM口, 按下图所示 2000000 端口波特率,CAN波特率 500.000Kbps,即可发送CAN消息至Esp32-s3-touch-lcd-7
打开串口调试助手,可以看到Esp32-s3-touch-lcd-7已经开始接收CAN消息(若接收报错,可多进行几次复位与软件重新开启设备,耐心等待)
lvgl_Porting
lvgl_Porting 示例,用于测试RGB触摸屏幕的使用
[] 烧录代码后,可进行一系列触屏操作,是可供用户LVGL移植的例程