ESP32-S3-Touch-LCD-4 是一款微雪 (Waveshare) 设计的低成本,高性能的微控制器开发板。其支持 2.4GHz WiFi 和 BLE 5,集成大容量 Flash 和 PSRAM,板载 4 英寸电容触摸LCD屏,可流畅运行 LVGL 等 GUI 界面程序;结合多种外设接口(如:CAN、I2C和RS485等接口),快速开发 ESP32-S3 的 HMI 等应用。多种功能与接口满足在物联网 (IoT)、移动设备、智能家居等应用场景的功耗需求。
1、ESP32-S3N16R8 模组 2、SW6106 电池充放电芯片 3、TJA1051T/3/1J 4、SP3485 芯片 5、PCF85063 6、TCA9554PWR 7、XL1509-ADJE1 电源芯片 8、3.5mm 10pin 接线槽 9、RTC 电池接口 |
11、Micro SD 卡座 12、PH2.0 锂电池接口 13、蜂鸣器 14、CAN 和 RS485 终端电阻开关 15、电源指示灯 16、BOOT 按键 17、RESET 按键 18、BAT_PWR 按键 |
ESP32-S3-WROOM-x | LCD | USB | SD | UART | CAN | RTC | OTS |
GPIO0 | CANRX | ||||||
GPIO1 | LCD_SDA | MOSI | |||||
GPIO2 | LCD_SCL | SCK | |||||
GPIO3 | R2 | ||||||
GPIO4 | MISO | ||||||
GPIO5 | B1 | ||||||
GPIO6 | CANTX | ||||||
GPIO7 | TP_SCL | RTC_SCL | SCL | ||||
GPIO8 | R3 | Expander_SDA | |||||
GPIO9 | G5 | Expander_SCL | |||||
GPIO10 | G4 | ||||||
GPIO11 | G3 | ||||||
GPIO12 | G2 | ||||||
GPIO13 | G1 | ||||||
GPIO14 | G0 | ||||||
GPIO15 | TP_SDA | RTC_SDA | SDA | ||||
GPIO16 | TP_INT | ||||||
GPIO17 | R5 | ||||||
GPIO18 | R4 | ||||||
GPIO19 | USB_DN | ||||||
GPIO20 | USB_DP | ||||||
GPIO21 | B5 | ||||||
GPIO38 | HSYNC | ||||||
GPIO39 | VSYNC | ||||||
GPIO40 | DE | ||||||
GPIO41 | LCD_PCLK | ||||||
GPIO42 | LCD_CS | ||||||
GPIO43 | RS485_RX | ||||||
GPIO44 | RS485_TX | ||||||
GPIO45 | B2 | ||||||
GPIO46 | R1 | ||||||
GPIO47 | B4 | ||||||
GPIO48 | B3 | ||||||
TCA9554PWR | - | - | - | - | - | - | - |
EXIO0 | TP_RST | ||||||
EXIO1 | BL_EN | ||||||
EXIO2 | LCD_RST | ||||||
EXIO3 | SD_CS | ||||||
EXIO4 | BLC | ||||||
EXIO5 | BEE_EN | ||||||
EXIO6 | RTC_INT | ||||||
EXIO7 | DO1 |
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
ESP32-S3-Touch-LCD-4 目前提供 Arduino IDE 和 ESP-IDF 两种开发工具和框架,提供了灵活的开发选择,你可以根据项目需求和个人习惯选择适合的开发工具。
![]() | Arduino IDEArduino IDE是一款便捷灵活、方便上手的开源电子原型平台。不需要太多基础,简单学习后,你也可以快速地进行开发。同时,Arduino 拥有庞大的全球用户社区,提供了海量的开源代码、项目示例和教程,还有丰富的库资源,封装了复杂功能,让开发者能快速实现各种功能。 |
![]() | ESP-IDFESP-IDF,全称Espressif IDE,是乐鑫科技为 ESP系列芯片推出的专业开发框架。它使用C语言开发,包括编译器、调试器、烧录工具等,可在命令行下或使用集成开发环境(如 Visual Studio Code 配合 Espressif IDF 插件)进行开发,插件提供代码导航、项目管理、调试等功能。 |
这两种开发方式各有其优势,开发者可以根据自身需求和技能水平进行选择。Arduino 适合初学者和非专业人士,因其简单易学、上手快。而对于有专业背景或对性能要求较高的开发者,ESP-IDF 是更好的选择,它提供了更高级的开发工具和更强的控制能力,适用于复杂项目的开发。
本章介绍 Arduino 环境搭建,包括 Arduino IDE、ESP32板管理、相关库的安装,程序编译下载及示例程序测试,帮助用户掌握开发板,便于二次开发。
板名称 | 板安装要求 | 版本号要求 |
---|---|---|
ESP32-S3-Touch-LCD-4 | “离线”安装/“在线”安装 | 3.0.7 |
库名称 | 说明 | 版本 | 库安装要求 |
---|---|---|---|
ESP32_Display_Panel | ST7701、GT911驱动库 | v0.1.8 | 可“在线”或“离线”安装 |
ESP32_IO_Expander | TCA9554 IO拓展芯片驱动库 | v0.0.4 | “离线”安装(更改了IOExpander_Library的返回值) |
lvgl | LVGL图形化库 | v8.4.0 | “在线”安装后需复制demos文件夹至src,建议使用“离线”安装 |
lv_conf.h | LVGL配置文件 | —— | “离线”安装 |
示例程序 | 基础例程说明 | 依赖库 |
---|---|---|
01_PanelTest | 测试RGB屏幕 | GFX_Library_for_Arduino |
02_LVGL_Porting | 测试RGB触摸屏幕 | GFX_Library_for_Arduino,Arduino DriveBus |
03_Rotation | 测试RS-485 座子 | GFX_Library_for_Arduino |
04_RS485_Test | 测试RS-485 座子 | GFX_Library_for_Arduino |
05_TWAIreceive | 测试CAN卡座 | GFX_Library_for_Arduino |
06_TWAItransmit | 测试CAN卡座 | SensorLib,GFX_Library_for_Arduino |
07_SD_Test | 测试SD卡座 | LVGL |
PSRAM
使能,部分版本设置为 OPI PSRAM【硬件连接】
【代码分析】
setup()
:ESP_Panel
对象并初始化面板;loop()
:【运行效果】
【硬件连接】
【代码分析】
setup()
:ESP_Panel
对象并初始化面板设备,开始面板设备,如果启用避免撕裂功能,根据 LVGL 配置设置 RGB 总线参数【运行效果】
【硬件连接】
【代码分析】
setup()
:rotateDisplay()
:lv_disp_t
类型的指针和一个旋转角度参数lv_disp_set_rotation
函数设置 LVGL 显示的旋转角度lv_label_set_text_fmt
函数更新显示旋转角度的标签文本,以显示当前的旋转角度onRightBtnClickCallback()
:LV_DISP_ROT_270
,则将旋转角度设置为 LV_DISP_ROT_NONE
(无旋转);否则,将旋转角度增加一个单位onLeftBtnClickCallback()
:LV_DISP_ROT_NONE
,则将旋转角度设置为 LV_DISP_ROT_270
;否则,将旋转角度减少一个单位rotateDisplay
函数来更新显示的旋转角度【代码分析】
setup()
:Serial2.begin(115200, SERIAL_8N1, 43, 44);
:初始化 UART2,设置波特率为 115200,数据格式为 8 位数据位、无校验位、1 位停止位,并指定使用 GPIO43(RXD) 和 GPIO44(TXD) 作为收发引脚loop()
:Serial2.available()
检查 UART2 是否有数据可读,使用Serial2.read()
读取数据,当满足特定条件时,通过Serial2.println(buffer)
将缓冲区中的数据发送出去,实现对 UART2 数据的接收和发送处理【运行效果】
【代码分析】
【代码分析】
【运行效果】
【硬件连接】
【代码分析】
SDMMC_CLK
、SDMMC_CMD
、SDMMC_DATA
)来初始化 SD 卡。如果初始化失败,程序会进入死循环,确保在没有成功挂载 SD 卡的情况下不继续执行其他操作。listDir
函数,列出 SD 卡根目录下的文件和目录,为用户提供了对 SD 卡存储内容的直观了解,方便进行后续的文件操作和管理本章介绍 ESP-IDF 环境搭建,包括 Visual Studio、Espressif IDF插件的安装,程序编译下载及示例程序测试,帮助用户掌握开发板,便于二次开发。
示例程序 | 基础例程说明 |
---|---|
01_RS485_Test | 测试RS-485 座子 |
02_SD_Test | 测试SD卡座 |
03_RTC_Test | RTC时钟跟RTC中断 |
04_TWAIreceive | 测试CAN卡座 |
05_TWAItransmit | 测试CAN卡座 |
06_LVGL_Proting | 测试RGB触摸屏幕 |
【代码分析】
echo_task()
:【运行效果】
【硬件连接】
【代码分析】
waveshare_sd_card_init()
:这个函数主要用于初始化 SD 卡。首先初始化 I2C,然后通过 I2C 控制芯片拉低 SD 卡的 CS 引脚。接着配置 SD 卡的挂载选项,包括是否在挂载失败时格式化、最大文件数和分配单元大小等。之后初始化 SPI 总线,并使用配置好的 SPI 总线和挂载选项来挂载 SD 卡文件系统。如果挂载成功则返回ESP_OK,表示 SD 卡初始化完成。
waveshare_sd_card_test()
:这个函数用于测试 SD 卡的功能。首先打印已初始化的 SD 卡的信息。然后创建一个文件并写入数据,重命名该文件并读取重命名后的文件内容。接着格式化文件系统,检查文件在格式化后是否被删除。最后创建一个新文件并读取其内容,完成测试后卸载 SD 卡并释放 SPI 总线资源。
【硬件连接】
【代码分析】
app_main()
:【运行效果】
【代码分析】
waveshare_twai_receive()
:【运行效果】
【代码分析】
waveshare_twai_transmit()
:【运行效果】
【硬件连接】
【代码分析】
app_main()
: lv_demo_stress
、 lv_demo_benchmark
、 lv_demo_music
、 lv_demo_widgets
或 example_lvgl_demo_ui
等。【运行效果】
...\ESP32-S3-Touch-LCD-4-Demo\Firmware
可以订阅该存储库,并提出issue说明需求,工程师收到需求后会第一时间进行评估: ESP32-display-support
在屏幕排线下方有丝印区分,无丝印为V1.0版本,有丝印则对应版本
1、使用宽电压供电时,I2C设备都无法识别,SW6106 I2C拉低所致,建议接上锂电池使用,如若无法链接锂电池则可隔断SW6106 i2c线。
1、SW6106有轻载检测,解决方法为每次上电,I2C初始化向0x3C设备0x38寄存器写入0x0A值,或循环1s延迟向0x3C设备0x03寄存器写入0x01即可控制轻载关机。
1、在我们设计之初,考虑电池功能(SW6106方案)和上电开机功能(Mos),我们预留了理想二极管来保证了上电从USB口取电给电路板供电,此方案在正常情况下可以上电即开机。在某些情况下,如使用电脑的USB、Type-C等支持快充协议的物理口供电,可能会升压而导致TVS烧坏短路,这是一个正常的保护电路现象,此时出现的情况是冒烟、屏幕不亮、PWR灯频闪等。在这种情况下,需要拆除如下图所示的TVS和MOS管,请放心处理,电路经过验证可以承受最大快充电压20V,所以拆除它们是一个较合理的处理方式。
2、在上述拆除TVS和MOS管后,开发板上电是不会点亮的,此时需要单击BAT_PWR来实现开机,当然在开机状态下也可以双击BAT_PWR进行关机。
1、当串口被占用时会烧录失败,将串口监视器关闭重新烧录
2、当ESP32程序崩溃时,烧录会失败,此时需要将开发模块完全断电,按住BOOT再上电进入强下载模式再进行烧录。烧录完不会自动退出下载模式,所以需要再次进行断电重启
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*来查看所有串口设备的配置信息。
本产品所使用的LCD屏幕显示芯片为ST7701,触摸芯片为GT911,我们建议直接参阅Arduino 或 ESP-IDF的示例例程
本产品定位于开发板,并不是成品产品。关于产品生态属于是ESP32核心,生态很成熟,开发环境也很友好,我们不协助修改代码,请各位创客、极客自行发挥DIY能力,如有疑问可以询问工程师为您解答。
如您觉得我们的产品不错,希望批量定制硬件、定制外壳、定制软件等,欢迎联系销售
周一-周五(9:30-6:30)周六(9:30-5:30)
手机:13434470212
邮箱:services04@spotpear.cn
QQ:202004841