ESP32-S3-LCD-3.16 使用教程

产品介绍

产品简介

本产品采用 ESP32-S3R8 芯片,支持 2.4GHz Wi-Fi 和 BLE 5 蓝牙功能,内置大容量 Flash 和 PSRAM。配备 3.16 英寸高清 LCD 显示屏,可流畅运行 LVGL 等 GUI 程序。板载 RTC、IMU、Micro SD 卡槽及锂电池充电功能,外设资源丰富,同时预留 USB、UART 及 I2C 接口,提供灵活扩展能力,是快速开发基于 ESP32-S3 的 HMI 应用的理想选择。

产品特性

  • 搭载高性能 Xtensa 32 位 LX7 双核处理器,主频高达 240MHz
  • 支持 2.4GHz Wi-Fi 和 Bluetooth 5 (LE),板载内部天线,预留焊点,可设置成外接天线
  • 内置 512KB SRAM 和 384KB ROM,叠封 16MB Flash 和 8MB PSRAM
  • 板载 3.16 英寸 LCD 显示屏,320 × 820 分辨率,64K 彩色,通信接口采用 RGB565
  • 板载 QMI8658 六轴惯性测量单元 (3 轴加速度、3 轴陀螺仪),可检测运动姿态、计步等
  • 板载 PCF85063 RTC 芯片,预留 SH1.0 电池插槽,可方便实现 RTC 功能需求
  • 使用拨动开关控制系统电源通断,可控性更高
  • 板载 RST、BOOT 侧边按钮,BOOT 支持自定义按键功能,开发使用更灵活
  • 板载 3.7V MX1.25 锂电池充放电接口
  • 板载 Micro SD 卡槽,可外接 Micro SD 卡存储图片或文件
  • 引出 UART、I2C SH1.0 4PIN 接口及 USB MX1.25 4PIN 接口
  • 板载 USB Type-C 接口,可用于供电和下载调试,方便开发使用

资源简介


1、ESP32-S3R8
   Wi-Fi 和蓝牙 SoC,240MHz 运行频率,叠封 8MB PSRAM
2、16MB NOR-Flash

3、IPEX1 外部天线接口 (须改焊点)
   IMU 姿态芯片

4、板载贴片天线
   支持 2.4GHz Wi-Fi (802.11 b/g/n) 和 Bluetooth 5 (LE)

5、QMI8658
   六轴惯性测量单元 (IMU),包含一个 3 轴陀螺仪和一个 3 轴加速度计
6、PCF85063
   RTC 时钟芯片
7、RTC 独立电池接口
8、PH1.0 4PIN I2C 接口
9、MX1.25 4PIN USB 接口

10、PH1.0 4PIN UART 接口

11、RST 按键

12、BOOT 按键
   按住 BOOT,单击 RST 可以进入下载模式
13、拨动开关
   OFF 关闭系统电源,ON 打开系统电源
14、Micro SD 卡槽
   使用时需要将 SD 卡格式化为 FAT32
15、Type-C 接口
   ESP32-S3 USB 接口,可用于烧录程序和日志打印
16、MX1.25 锂电池接口
   MX1.25 2P 连接器,可用于接入 3.7V 锂电池,支持充放电
17、贴片铜螺母
   M2×3.5×3.5+2.0×1.2

接口介绍

需要更加详细请查阅原理图

产品尺寸


LCD屏参数

ESP32-S3-LCD-3.16-12.png

使用说明

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

开发工具介绍


Arduino IDE

Arduino IDE是一款便捷灵活、方便上手的开源电子原型平台。不需要太多基础,简单学习后,你也可以快速地进行开发。同时,Arduino 拥有庞大的全球用户社区,提供了海量的开源代码、项目示例和教程,还有丰富的库资源,封装了复杂功能,让开发者能快速实现各种功能。


ESP-IDF

ESP-IDF,全称Espressif IDE,是乐鑫科技为 ESP系列芯片推出的专业开发框架。它使用C语言开发,包括编译器、调试器、烧录工具等,可在命令行下或使用集成开发环境(如 Visual Studio Code 配合 Espressif IDF 插件)进行开发,插件提供代码导航、项目管理、调试等功能。


这两种开发方式各有其优势,开发者可以根据自身需求和技能水平进行选择。Arduino 适合初学者和非专业人士,因其简单易学、上手快。而对于有专业背景或对性能要求较高的开发者,ESP-IDF 是更好的选择,它提供了更高级的开发工具和更强的控制能力,适用于复杂项目的开发。

器件准备

  • ESP32-S3-LCD-3.16 x1
  • SD卡(FAT32格式) x1
  • USB线 type A公口 转 Type C公口 x1
在操作前,建议先浏览目录,快速了解文档结构。为顺利操作,请仔细阅读FAQ,提前了解可能的问题。文档中所有资料均提供超链接,方便下载。

Arduino开发

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


环境搭建

下载和安装 Arduino IDE

  • 点击访问Arduino官网,选择对应的系统和系统位数下载。

  • 运行安装程序,全部默认安装即可。
环境设置是在 Windows 10 系统下进行,Linux和Mac用户可访问Arduino-esp32环境搭建参考

安装 ESP32 开发板

  • ESP32相关主板在Arduino IDE使用,须先安装“esp32 by Espressif Systems”开发板的软件包
  • 根据板安装要求进行安装,一般推荐“在线安装”, 若在线安装失败,则使用“离线安装
  • 安装教程,详见:Arduino 板管理教程
  • ESP32-S3-LCD-3.16 所需开发板安装说明
板名称板安装要求版本号要求
esp32 by Espressif Systems“离线”安装/“在线”安装≥3.1.0

安装库

  • 在安装 Arduino 库时,通常有两种方式可供选择:在线安装 和 离线安装若库安装要求离线安装,则必须使用提供的库文件
    对于大多数库,用户可以通过 Arduino 软件的在线库管理器轻松搜索并安装。然而,一些开源库或自定义库未被同步到 Arduino 库管理器中,因此无法通过在线搜索获取。在这种情况下,用户只能通过离线方式手动安装这些库。
  • 库安装教程,详见:Arduino 库管理教程
  • ESP32-S3-LCD-3.16 库文件路径:
    ..\ESP32-S3-LCD-3.16-Demo\Arduino\libraries
  • ESP32-S3-LCD-3.16 库文件安装说明
库名称说明版本库安装要求
LVGL图形库v8.4.0/v9.3.0“离线”安装

运行第一个 Arduino 程序

折叠
如果你刚入门学习ESP32和Arduino,还不知道如何创建、编译、烧录和运行Arduino ESP32程序,那么请展开看看,希望可以帮助到你!

新建工程

  • 运行Arduino IDE,选择 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,点击保存

编译和烧录程序

  • 选择对应的开发板,以ESP32S3主板为例:

①. 点击选择下拉框选项“Select Other Board and Port”;
②. 搜索需要的开发板型号“esp32s3 dev module”并选择;
③. 选择COM口
④. 保存选择。

  • 若ESP32S3主板只有USB口,须打开(Enable)USB CDC,如下图所示:


  • 编译并上传程序:

①. 编译程序;②. 编译并下载程序;③. 下载成功。

  • 打开串口监视窗口,程序每隔2秒会打印“Hello World!”,运行情况如下所示:


示例程序


  • ESP32-S3-LCD-3.16 示例程序
示例程序基础例程说明依赖库
01_ADC_Test读取系统当前的电压值-
02_I2C_PCF85063打印RTC芯片的实时时间-
03_I2C_QMI8658打印IMU发出来的原始数据-
04_SD_Card加载显示SD卡的信息-
05_WIFI_AP设置为AP模式,可获取接入设备的IP地址-
06_WIFI_STA设置为STA模式,可接入WiFi获取IP地址-
07_LVGL_TestLVGL例程LVGL

Arduino 工程参数设置


折叠

01_ADC_Test

【程序说明】

  • 通过GPIO连接的模拟量电压经过ADC转换成数字量,然后通过计算得到实际的系统电压,打印到终端。

【硬件连接】


  • 使用USB线把板子接入电脑

【代码分析】


  • adc_bsp_init(void) :初始化 ADC1,包括创建 ADC 单次触发单元并配置 ADC1 的通道 3。
  • adc_get_value(float *value,int *data) :读取 ADC1 通道 3 的值,并根据参考电压和分辨率计算出对应的电压值存储在传入的指针指向的位置,如果读取失败则存储 0。
  • adc_example(void* parameter):初始化 ADC1 后,创建一个ADC任务,该任务每隔 1 秒读取一次ADC的值,通过读取的ADC原始值计算出系统的电压。

【运行效果】


  • 程序编译下载完成,打开串口监控可以看到打印输出的ADC的值和电压,如下图所示:


折叠

02_I2C_PCF85063

【程序说明】

  • 通过I2C协议,分别对PCF85063芯片进行初始化、设置时间、间隔读取时间,然后打印到终端

【硬件连接】


  • 使用USB线把板子接入电脑

【代码分析】


  • void i2c_rtc_loop_task(void *arg) :创建一个RTC任务来实现RTC功能,每隔1秒读取一次RTC芯片的时钟,然后输出到终端。

【运行效果】


  • 打开串口监控,可以看到打印输出的RTC时间,如下图所示:


折叠

03_I2C_QMI8658

【程序说明】

  • 通过I2C协议,对QMI8658芯片进行初始化设置,然后每隔200毫秒读取对应的姿态信息打印到终端

【硬件连接】


  • 使用USB线把板子接入电脑

【代码分析】


  • void i2c_qmi_loop_task(void *arg) :创建一个QMI任务来实现获取姿态信息,在任务中读取并打印加速度计、陀螺仪数据,并将获取的结果输出到串口控制台,间隔200毫秒。

【运行效果】


  • 打开串口监控,可以看到打印输出的IMU发出来的原始数据(欧拉角需要自己转换),如下图所示:


折叠

04_SD_Card

【程序说明】

  • 通过宏定义选择SPI或者SDMMC方式驱动SD卡,成功挂载SD卡之后把SD卡信息打印到终端。

【硬件连接】


  • 板子装上FatFs格式的SD卡(默认已经装好)。

【代码分析】


  • sd_card_Init(void) :使用4线SDMMC方式初始化SD卡。
  • loop():测试SD卡读写功能,需要取消#define sdcard_write_Test宏定义的注释。
//#define sdcard_write_Test

【运行效果】


  • 点击串口监控设备,可以看到输出的SD卡的信息,practical_size是SD卡的实际容量,如下图所示:


想了解更多关于Arduino ESP32库关于SD卡相关的使用?可访问:Arduino ESP32 库 SD 使用
折叠

05_WIFI_AP

【程序说明】

  • 该示例可将开发板设置为热点,允许手机或其他处于 STA 模式的设备连接到开发板。

【代码分析】


  • 05_WIFI_AP.ino文件找到ssidpassword,然后手机或其他处于 STA 模式的设备即可使用该 ssid 和 password 连接到开发板。
const char *ssid = "ESP32_AP";
const char *password = "12345678";

【运行效果】


烧录完程序,打开串口终端,如果设备连接成功热点之后,会输出该设备的MAC地址,如图: 


折叠

06_WIFI_STA

【程序说明】

  • 该示例可将开发板配置为 STA 设备,以连接路由器,从而接入系统网络。

【代码分析】


  • 05_WIFI_STA.ino文件找到ssidpassword,然后将其修改为当前环境中可用路由器的SSID 和 Password。
const char *ssid = "you_ssid"; 
const char *password = "you_password";

【运行效果】


烧录完程序,打开串口终端,如果设备连接成功热点之后,会输出所获取的IP地址,如图: 


折叠

07_LVGL_Test

【程序说明】

  • 通过移植LVGL,在屏幕上实现一些多功能的GUI界面

【硬件连接】


  • 使用USB线把板子接入电脑

【代码分析】


针对 LVGL,lvgl_conf.h 是其配置文件,下面对一些常用内容进行说明,还有一些LVGL的demo、文件系统都可以在conf配置文件里面设置

/*Color depth: 1 (1 byte per pixel), 8 (RGB332), 16 (RGB565), 32 (ARGB8888)*/
#define LV_COLOR_DEPTH 16//Color depth, a macro definition that must be concerned with porting LVGL


#define LV_MEM_CUSTOM 0
#if LV_MEM_CUSTOM == 0
    /*Size of the memory available for `lv_mem_alloc()` in bytes (>= 2kB)*/
    #define LV_MEM_SIZE (48U * 1024U)          /*[bytes]*/

    /*Set an address for the memory pool instead of allocating it as a normal array. Can be in external SRAM too.*/
    #define LV_MEM_ADR 0     /*0: unused*/
    /*Instead of an address give a memory allocator that will be called to get a memory pool for LVGL. E.g. my_malloc*/
    #if LV_MEM_ADR == 0
        #undef LV_MEM_POOL_INCLUDE
        #undef LV_MEM_POOL_ALLOC
    #endif

#else       /*LV_MEM_CUSTOM*/
    #define LV_MEM_CUSTOM_INCLUDE <stdlib.h>   /*Header for the dynamic memory function*/
    #define LV_MEM_CUSTOM_ALLOC   malloc
    #define LV_MEM_CUSTOM_FREE    free
    #define LV_MEM_CUSTOM_REALLOC realloc
#endif     /*LV_MEM_CUSTOM*/
//The above section is mainly for LVGL memory allocation, 
//which defaults to lv_mem_alloc() versus lv_mem_free().

【代码修改】


  • 显示芯片本身不支持硬件旋转,如果需要旋转显示可以通过软件实现,可以在 lcd_bsp.c 文件中找到#define EXAMPLE_Rotate_90宏定义然后取消注释该宏定义即可,软件旋转显示性能是不如硬件旋转的
#define EXAMPLE_Rotate_90

【运行效果】


  • LVGL例程对RAM和ROM要求比较高,所以必须要按照环境搭建的要求来配置程序烧录完成后,设备的运行效果如下:



LVGL更多学习及使用可参考LVGL官方文档
折叠

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插件教程,详见:安装Espressif IDF插件教程

运行第一个 ESP-IDF 程序

折叠
如果你刚入门学习ESP32和ESP-IDF,还不知道如何创建、编译、烧录和运行ESP-IDF程序,那么请展开看看,希望可以帮助到你!

新建项目




创建例程

  • 使用快捷键 F1 ,输入esp-idf:show examples projects


  • 选择你当前的IDF版本


  • 以Hello world例程为例

①选择对应例程
②其readme会说明该例程适用于什么芯片(下文有介绍例程怎么使用与文件结构,这里略)
③点击创建例程

  • 选择放置例程的路径,要求无例程同名文件夹


修改COM口

  • 此处显示使用对应的COM口,点击可以修改对应COM口
  • 请根据设备对应COM口进行选择(可通过设备管理器查看)
  • 若出现下载失败的情况请点击复位按键1秒以上或进入下载模式,等待 PC 端重新识别到设备后再次下载


修改驱动对象

  • 选择我们需要驱动的对象,也就是我们的主芯片为ESP32S3


  • 选择openocd的路径,这里对我们没有影响,所以我们随便选择一个即可



其余状态栏简介

①.ESP-IDF开发环境版本管理器,当我们的工程需要区分开发环境版本时,可以通过安装不同版本的ESP-IDF来分别管理,当工程使用特定版本时,可以通过使用它来切换
②.设备烧录COM口,选择以将编译好的程序烧录进芯片上
③.set-target 芯片型号选择,选择对应的芯片型号,如:ESP32-P4-Nano需要选择 esp32p4 为目标芯片
④.menuconfig,点击修改sdkconfig配置文件内容,项目配置详细资料
⑤.fullclean 清理按钮,当工程编译报错或其他操作污染编译内容时,通过点击清理全部编译内容
⑥. Build 构建工程,当一个工程满足构建时,通过此按钮进行编译
⑦.当前下载方式,默认为UART
⑧.flash烧录按钮,当一个工程Build构建通过时,选择对应开发板COM口,点击此按钮可以将编译好的固件烧录至芯片
⑨.monitor开启烧录口监控,当一个工程Build-->flash后,可通过点击此按钮查看烧录、调试口输出的l0g,以便观察应用程序是否正常工作
⑩.Debug调试
⑪.Build Flash Monitor 一键按钮,用于连续执行Build-->Flash-->Monitor,常被称作小火苗


编译、烧录、串口监视

  • 点击我们之前介绍的 编译,烧录,打开串口监视器按键


  • 编译可能需要较长时间才能完成,尤其是在第一次编译时


  • 在此过程中,ESP-IDF可能会占用大量CPU资源,因此可能会导致系统卡顿
  • 若是新工程首次烧录程序,将需要选择下载方式,选择 UART


  • 后续也可在 下载方式 处进行修改(点击即可弹出选项)


  • 因为板载自动下载电路,无需手动操作即可自动下载
  • 下载成功后,自动进入串口监视器,可以看到芯片输出对应的信息并提示10S后重启



使用IDF 示例程序

下文以使用“ESP32-S3-LCD-1.47-Demo”为例介绍工程的两种打开方式及使用的一般步骤、ESP-IDF工程项目详解,若使用其他工程,操作步骤类推。

软件内部打开

  • 打开 VScode 软件,选择文件夹打开示例


  • 选择提供的 ESP-IDF 下的示例,点击选择文件(位于 示例程序/Demo/ESP-IDF 路径下)



软件外部打开

  • 正确选择工程目录,打开工程,否则会影响后续程序编译烧录


  • 连接设备后,选择好COM口和型号,点击下方编译并烧录即可实现程序控制


ESP-IDF工程项目详解

  • 组件(Component):ESP-IDF中的组件是构建应用的基本模块,每个组件通常是相对独立的代码库或库,能实现特定的功能或服务,可以被应用程序或是其他组件重复使用,类似于Python开发中的库的定义。
    • 组件的引用:Python开发环境中引入库只需要“import 库名或路径”即可,而ESP-IDF基于C语言基础,引入库是通过CMakeLists.txt进行配置和定义的。
    • CmakeLists.txt的作用:ESP-IDF编译时编译工具CMake会首先通过读取工程目录的顶层CMakeLists.txt的内容来读取构建规则,识别需要编译的内容。当在CMakeLists.txt中引入了需要的组件、程序后,编译工具CMake会根据索引导入每个所需要编译的内容。编译过程如:


示例程序


  • ESP32-S3-Touch-AMOLED-1.43 示例程序
示例程序基础例程说明依赖库
01_ADC_Test读取系统当前的电压值-
02_I2C_PCF85063打印RTC芯片的实时时间-
03_I2C_QMI8658打印IMU发出来的原始数据-
04_SD_Card加载显示SD卡的信息-
05_WIFI_AP设置为AP模式,可获取接入设备的IP地址-
06_WIFI_STA设置为STA模式,可接入WiFi获取IP地址-
07_LVGL_TestLVGL例程LVGL
08_LVGL_SDIMG结合LVGL&SDCard&IMG例程LVGL
09_FactoryProgram综合性工程LVGL


01_ADC_Test

【程序说明】

  • 通过GPIO连接的模拟量电压经过ADC转换成数字量,然后通过计算得到实际的系统电压,打印到终端

【硬件连接】


  • 使用USB线把板子接入电脑


【代码分析】


  • adc_bsp_init(void) :初始化 ADC1,包括创建 ADC 单次触发单元并配置 ADC1 的通道 3
  • adc_get_value(float *value,int *data) :读取 ADC1 通道 3 的值,并根据参考电压和分辨率计算出对应的电压值存储在传入的指针指向的位置,如果读取失败则存储 0
  • adc_example(void* parameter):初始化 ADC1 后,创建一个ADC任务,该任务每隔 1 秒读取一次ADC的值,通过读取的ADC原始值计算出系统的电压

【运行效果】


  • 程序烧录完成后,打开监控设备可以看到,输出ADC的值和电压,如下图所示:


  • ADC采样值是1960左右,系统电压是4.92V左右,若想具体分析,可以查看原理图
折叠

02_I2C_PCF85063

【程序说明】

  • 通过I2C协议,分别对PCF85063芯片进行初始化、设置时间、间隔读取时间,然后打印到终端

【硬件连接】


  • 使用USB线把板子接入电脑

【代码分析】


  • void PCF85063_example(void* parameter) :创建一个RTC任务来实现RTC功能,每隔10秒读取一次RTC芯片的时钟,然后输出到终端

【运行效果】


  • 烧录完成之后打开监控设备,可以看到打印输出的RTC时间,如下图所示:


  • 数据每隔 10 秒输出一次,若需修改或参考,可直接进入 pcf85063 源文件进行操作
折叠

03_I2C_QMI8658

【程序说明】

  • 通过I2C协议,对QMI8658芯片进行初始化设置,然后每隔1秒读取对应的姿态信息打印到终端

【硬件连接】


  • 使用USB线把板子接入电脑

【代码分析】


  • qmi8658c_example(void* parameter) :该函数初始化 QMI8658 设备,在无限循环中读取并打印加速度计、陀螺仪数据和温度数据,每 1 秒执行一次,旋转板子的过程中陀螺仪数据随着旋转越快而越大,加速度计会根据当前的位置计算出对应的加速度。

【运行效果】


程序烧录完成后,设备的运行效果如下:

  • 点击串口监控设备,可以看到IMU发出来的原始数据(欧拉角需要自己转换),如下图所示:


  • 可以看到,每隔1秒输出一次,如果需要修改或者参考,可以直接进去qmi源文件修改
折叠

04_SD_Card

【程序说明】

  • 通过宏定义选择SPI或者SDMMC方式驱动SD卡,成功挂载SD卡之后把SD卡信息打印到终端。

【硬件连接】


  • 板子装上FatFs格式的SD卡(默认已经装好)。

【代码分析】


  • sd_card_Init(void) :使用4线SDMMC方式初始化SD卡。
  • loop():测试SD卡读写功能,需要取消#define sdcard_write_Test宏定义的注释。
//#define sdcard_write_Test

【运行效果】


  • 点击串口监控设备,可以看到输出的SD卡的信息,practical_size是SD卡的实际容量,如下图所示:


想了解更多关于Arduino ESP32库关于SD卡相关的使用?可访问:Arduino ESP32 库 SD 使用
折叠

05_WIFI_AP

【程序说明】

  • 把开发板作为一个AP等待STA终端的连接

【硬件连接】


  • 使用USB线把板子接入电脑

【代码分析】


  • wifi_init_softap(void) :该函数用于初始化 ESP32 的 Wi-Fi 软接入点,包括设置网络接口、注册事件处理函数、配置软 AP 参数并启动软 AP

【运行效果】


  • 芯片处于AP模式下,使用手机成功连接WIFI并且串口会打印连接设备的MACA地址以及分配给该设备的IP地址


折叠

06_WIFI_STA

【程序说明】

  • 把开发板作为一个终端角色,可以连接环境可用的AP,成功连接之后打印获取到的IP信息到终端

【硬件连接】


  • 使用USB线把板子接入电脑

【代码分析】


  • espwifi_Init(void) :此函数用于在 ESP32 上进行 WiFi 初始化。它依次初始化非易失性存储、TCP/IP 栈、创建默认事件循环和默认 WiFi 站点网络接口,使用默认配置初始化 WiFi,注册事件处理函数以处理 WiFi 和 IP 相关事件,设置 WiFi 连接参数并启动 WiFi。

【代码修改】


该工程实现芯片处于STA模式下连接WIFI而且获取到IP地址,在编译、下载固件之前,需要修改一些代码,此处修改成所处环境可用的WIFI路由器名字和密码

【运行效果】


程序烧录完成后,设备的运行效果如下:

  • 芯片处于STA模式下成功连接WIFI并且获取到IP地址


折叠

07_LVGL_Test

【程序说明】

  • 通过移植LVGL,在屏幕上实现一些多功能的GUI界面

【硬件连接】


  • 使用USB线把板子接入电脑

【代码分析】

  • 显示芯片本身不支持硬件旋转,如果需要旋转显示可以通过软件实现,可以在main文件找到#define EXAMPLE_Rotate_90宏定义然后取消注释该宏定义即可,软件旋转显示性能是不如硬件旋转的
#define EXAMPLE_Rotate_90

【运行效果】


  • LVGL例程对RAM和ROM要求比较高,所以必须要按照环境搭建的要求来配置程序烧录完成后,设备的运行效果如下:


LVGL更多学习及使用可参考LVGL官方文档
折叠

08_LVGL_SDIMG

【程序说明】

  • 通过把png、jpg、bmp格式的图片存储在SD卡上,然后读取SD卡的图片并且显示到LVGL的界面上
  • 注意 
    • 图片需要统一分辨率为320 x 240
    • bmp类型的图片须转成RGB565格式

【硬件连接】


  • 使用USB线把板子接入电脑

【代码分析】

  • 显示芯片本身不支持硬件旋转,如果需要旋转显示可以通过软件实现,可以在main文件找到#define EXAMPLE_Rotate_90宏定义然后取消注释该宏定义即可,软件旋转显示性能是不如硬件旋转的
#define EXAMPLE_Rotate_90

【运行效果】


  • 在SD卡下新建目录Test,把需要的图片放入该目录,然后把SD卡插入板子上,正常上电,设备的运行效果如下:


  • 点击Scan IMG将会扫描Test目录下的图片文件,扫描结果如图:


  • 点击对应图片文件名,将会跳转到对应的图片,如图:


折叠

09_FactoryProgram

【程序说明】


  • 综合性工程,测试板载功能,这个例程需要注意下IDF的版本,V5.2.0以上可能扫描不到周围wifi,如果需要测试,可以使用版本较低的编译或者使用我们提供的BIN固件

【硬件连接】


  • 使用USB线把板子接入电脑(显示效果默认是软件旋转90°,如果不需要可以在main文件找到#define EXAMPLE_Rotate_90宏定义然后注释掉即可)

【运行效果】


  • 通过左右滑动进行切换页面,首先每隔1.5秒显示RGB颜色,可以通过这个观察屏幕有没有问题


  • 显示完RGB之后,将会自动跳转到时钟界面


  • 通过左滑动界面,可以看到该页面是一些板载硬件信息


  • 再次左滑界面,可以看到该界面是功能界面


  • 可以点击WIFI标志,进入到WIFI测试界面,然后点击Scan按钮进行扫描周围WIFI
  • 点击exit返回上一界面然后点击BLE标志,进入到BLE测试界面,再点击Scan按钮进行扫描周围BLE


  • 最后的界面为背光调整,可滑动滑块调整背光亮度


Flash固件的烧录与擦除


  • 当前示例程序有提供测试固件,可通过直接烧录测试固件来测试板载设备功能正常与否
  • bin文件路径:
    ..\ESP32-S3-Touch-LCD-1.43-Demo\Firmware

资料

原理图

示例程序

3D文件

数据手册

ESP32-S3

其他器件

软件工具

Arduino

VScode

固件烧录工具

其他资料链接

FAQ

问题:模块下载程序后,重新下载,有时会出现无法连接串口,或者烧录失败的情况?

  • 可长按BOOT按键,同时按下RESET,然后松开RESET,再松开BOOT按键,此时模块可进入下载模式,可解决大部分无法下载的问题。


问题: VSCode环境搭建失败?

  • 优先考虑网络问题,试着切换别得网络


问题:Arduino程序编译报错?

  • 检查Arduino IDE -> Tools有没有正确配置


问题: 显示图片滑动的时候比较卡?

  • 修改LVGL显示缓存为整个屏幕大小
  • 在配置选项里面修改LV_IMG_CACHE_DEF_SIZE改到1000可以得到一定优化


问题: 显示不了中文?

  • 基本的中文可以显示,如果是生僻字显示不了
  • 可以把需要的生僻字通过转码软件转码,然后加入到工程字库里面


问题: 程序首次编译超级慢怎么处理?

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


问题: ESP-IDF烧录成功串口显示“waiting for download...”怎么处理?

  • 若开发板有复位键则按下复位键;若没有复位键,请重新上电


问题: 找不到AppData文件夹怎么处理?

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


问题: 怎么查看自己使用的COM口?

  • 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*来查看所有串口设备的配置信息。


问题:在使用 MAC 设备时,程序烧录失败?


问题:锂电池和RTC电池不清楚怎么选择?

  • 正常的3.7V-4.2V锂电池,不带外壳的就直接PH1.25接口直插,带外壳的通过VBAT、GND端子接入
  • RTC电池范围是1.5到3.3V,端子接口采用SH1.0


问题:如何使用SquareLine Studio设计界面


技术支持

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

手机:13434470212

邮箱:services04@spotpear.cn

QQ:202004841


[教程导航]