ESP32-S3-LCD-1.54 使用教程

产品特性

  • 搭载 ESP32-S3R8 高性能 Xtensa® 32 位 LX7 双核处理器,主频达 240 MHz
  • 支持 2.4 GHz Wi-Fi (802.11 b/g/n) 和 Bluetooth® 5 (LE),并集成板载天线
  • 内置 512KB 的 SRAM 和 384KB ROM,叠封 8MB PSRAM 和外接 16MB Flash 存储
  • 采用 Type-C 接口,无需纠结正反插,提高了用户的使用便捷性和设备的兼容性
  • 板载 1.54 英寸电容液晶屏,240 × 240 分辨率,262K 彩色,能清晰地显示彩色图片
  • 板载 ES7210 音频编码芯片,支持双麦克风音频采集及回声消除功能
  • 板载 ES8311 音频编解码芯片,NS4150B 功放芯片,麦克风和喇叭
  • 板载 QMI8658 六轴惯性测量单元 (3 轴加速度、3 轴陀螺仪),可检测运动姿态拓展应用
  • 内置 ST7789 驱动芯片,使用 SPI 接口通信
  • 内置 CST816 电容触控芯片,使用 I2C 接口通信(仅触控版本)
  • 板载 PLUS、BOOT 两个可自定义功能的按钮,方便使用按钮进行自定义功能开发
  • 板载 3.7V 1.2mm 锂电池充放电接口
  • 引出 1 路 I2C、1 路 UART 和 1 路 USB 焊盘,可供外接设备和调试使用,灵活配置外设功能
  • 板载 Micro SD 卡槽,支持存储扩展与快速数据传输,便于实现数据记录与媒体播放等功能,并简化系统电路设计

板载资源


  1. ESP32-S3R8 高性能 Xtensa® 32 位 LX7 双核处理器,主频达 240 MHz
  2. 16MB NOR-Flash
  3. NS4150B 音频功率放大器芯片
  4. ES8311 低功耗音频编解码芯片
  5. ES7210 ADC 芯片实现回声消除电路
  6. 电池充放电管理芯片
  7. QMI8658 六轴惯性测量单元 (IMU),包含一个 3 轴陀螺仪和一个 3 轴加速度计
  8. PLUS 按键 用户自定义按键
  9. PWR 按键
  10. BOOT 按键 用于设备启动和功能调试
  11. 麦克风 麦克风输入及回声消除
  12. Micro SD 卡槽
  13. 板载贴片天线 支持 2.4GHz Wi-Fi (802.11 b/g/n) 和 Bluetooth 5 (LE)
  14. MX1.25 锂电池接口 MX1.25 2PIN 连接器,可用于接入 3.7V 锂电池,支持充放电
  15. Type-C 接口
  16. MX1.25 喇叭接口 不区分极性
  17. 1.54 英寸屏幕排线座子

LCD 及其控制器

  • 该款 LCD 使用的内置控制器为 ST7789,是一款 240 × RGB × 320 像素的 LCD 控制器,而本 LCD 本身的像素为 240(H) × RGB × 240(V),因此 LCD 的内部 RAM 并未完全使用。
  • 该 LCD 支持 12 位,16 位以及 18 位每像素的输入颜色格式,即 RGB444,RGB565,RGB666 三种颜色格式,例程使用 RGB565 的颜色格式,这也是常用的 RGB 格式。
  • LCD 使用四线 SPI 通信接口,这样可以大大的节省 GPIO 口,同时通信时速度也会比较快

SPI 通信协议:

  • 注:与传统的 SPI 协议不同的地方是:由于是只需要显示,故而将从机发往主机的数据线进行了隐藏

  • RESX 为复位,模块上电时拉低,通常情况下置 1;

  • CSX 为从机片选, 仅当 CS 为低电平时,芯片才会被使能。

  • D/CX 为芯片的数据/命令控制引脚,当 DC = 0 时写命令,当 DC = 1 时写数据

  • SDA 为传输的数据,即 RGB 数据;

  • SCL 为 SPI 通信时钟。

  • 对于 SPI 通信而言,数据是有传输时序的,即时钟相位(CPHA)与时钟极性 (CPOL) 的组合:

  • CPHA 的高低决定串行同步时钟是在第一时钟跳变沿还是第二个时钟跳变沿数据被采集,当 CPHA = 0,在第一个跳变沿进行数据采集;

  • CPOL 的高低决定串行同步时钟的空闲状态电平,CPOL = 0,为低电平。

  • 从图中可以看出,当 SCLK 第一个下降沿时开始传输数据,一个时钟周期传输 8bit 数据,使用 SPI0,按位传输,高位在前,低位在后

引脚定义

在使用板上预留的 GPIO 端子时需注意接线颜色和对应功能,避免接线惯性导致烧坏开发板


产品尺寸


使用说明

为了让用户能够快速了解产品的各个功能,我们提供了一系列的测试例程,方便客户了解各个接口的使用。除了 ESP32-S3-Touch-LCD-1.54 主机和配套的器件之外,为了能够运行例程,需要准备的器件如下:

器件准备

  • ESP32-S3-Touch-LCD-1.54 ×1
  • Micro SD 卡 ×1(非必需,SD 卡示例需要)

产品组装说明

注意

安装电池时,组装 PC 绝缘片有绝缘及阻燃的作用,用于隔开电池和 PCB 板


注意事项

⚠️ USB 下载注意事项(重要)

开发板使用 USB 下载程序

若出现 无法识别端口 的情况,请进入 Boot 模式

  1. 按住 BOOT 按键
  2. 连接 USB 至电脑
  3. 松开 BOOT 按键

下载完成后,重新上电运行程序。

固件下载

固件烧录

  • 解压软件资源包(Flash_download_tool
  • 打开 flash_download_tool_3.9.7.exe 软件,根据开发板的 MCU 和接口选择: ESP32-S3 及 USB

  • 参数设置
    • ①. 选择与开发板所对应的 COM 口
    • ②. 选择 BAUD 为最高的 1152000
    • ③. 点击“...”选择示例程序包提供的ESP32-S3-LCD-1.54-Demo\FirmwareESP32-S3-Touch-LCD-1.54-Demo\Firmware目录下的 bin 文件,并手动输入下载地址 “0x00”最左侧勾选
    • ④. 开始烧录

  • 烧录完成(烧录过程需要一定时间,请耐心等待)
  • 按下复位观察现象

注意

若出现一直处于“等待上电同步中”的情况,需按住“boot”重新上电,进下载模式即可解决

示例介绍

  • 固件使用 brookesia 组件,展示 APP 风格的各种应用程序,包含设置、电子相册、音乐播放器、视频播放器、录音、squareline、小智 AI 、重力小球等 APP (仅带触控版本支持)

APP 示例介绍

提示
  • 退出 APP 方式为从底部往上滑动
  • 从底部往上滑动,并停留在屏幕中间可以查看最近运行的 APP 程序,上滑即可销毁关闭 APP 进程

设置 APP

  • 拥有 WIFI 扫描和配网功能,点击 WIFI 界面 wifi config可以扫描二维码进行配网操作

  • 可以调节显示亮度以及音量大小

  • 显示电池 ADC 电压

  • 产品关于界面,可以查看 MAC 地址


电子相册 APP

  • 支持 jpg 图片显示, 更多图片格式正在适配中

  • 模拟电子相册的界面,此 APP 需要插入内存卡,并在 photo 目录下放入 jpg 图片文件才能正常运行


音乐 APP

  • 模拟音乐播放器的界面,此 APP 需要插入内存卡,并在 music 目录下放入 MP3 文件才能正常运行


视频 APP

  • 模拟视频播放器的界面,此 APP 需要插入内存卡,并在 video 目录下放入 MP3 文件才能正常运行


电子书 APP

  • 模拟电子书的界面,此 APP 需要插入内存卡,并在 fiction 目录下放入 txt 文件才能正常运行


录音 APP

  • 此例程可以进行双麦克风收音测试,点击开始按钮即开始录音,再次点击停止录音,然后会自动播放录制的音频

  • 录制的音频文件保存在内存卡根目录下


squareline

  • 此示例展示 squareline 制作的 LVGL demo


Gravity Ball

  • 此示例展示基于六轴姿态传感器的重力小球 App, 小球会跟随设备的倾斜,转动姿态实时移动


小智 AI APP

  • 点击 APP 即可进入小智 AI 应用,跟小智官网适配的版本一致,操作方式相同,双击 boot 按键可以回到 brookesia 界面



小智 AI 应用教程

XiaozhiAI(小智 AI)是一个基于 ESP32 开发板的开源 AI 语音聊天机器人项目,旨在将大语言模型(LLM)的通用智能赋予边缘设备。它提供了一套软硬件结合的解决方案,支持全双工语音对话及 IoT 设备控制,致力于协助开发者低成本、快速地构建高定制度的实体 AI 智能体。

本文演示如何为微雪电子支持小智 AI 的 ESP32 开发板烧录固件,包括无开发环境烧录(直接烧录预编译固件)和有开发环境烧录(从源码编译并烧录)两种方式。

0. 烧录固件流程参考

信息

本文以 ESP32-S3-Touch-AMOLED-1.8 开发板为例进行演示,若使用其他开发板,操作步骤类似。

请先确认你的硬件在 小智 AI 适配产品列表 中。


1. 无开发环境烧录

1.1 通过小智官方 GitHub 下载固件

  1. 访问 小智 GitHub 下载对应设备的固件文件,点击 Assets 展开全部文件列表:


  2. 参考 Flash 固件的烧录与擦除教程 完成固件烧录。

1.2 通过微雪电子 GitHub 下载固件

信息

此仓库 汇总了微雪电子支持小智 AI 的 ESP32 开发板固件,所有固件均已在对应开发板上测试验证,方便用户集中查找和下载。固件版本更新可能略晚于小智官方仓库。

  1. 访问 微雪 GitHub 仓库,根据需求选择合适版本的固件进行下载:


  2. 参考 Flash 固件的烧录与擦除教程 完成固件烧录。

2. ESP-IDF 环境烧录

2.1 通过小智 GitHub 下载工程

访问 XiaoZhi AI Chatbot 仓库下载完整工程代码:


2.2 环境搭建

参考 ESP-IDF 环境搭建教程 完成开发环境的配置。

2.3 配置编译

  1. 点击 VSCode 选择目标设备图标 选择目标设备,根据您的开发板选择对应的芯片型号(如 esp32s3):


    提示

    设置目标设备时,ESP-IDF 会自动配置相应的工具链和库,此过程可能需要一些时间,请耐心等待。更多详情请参阅 官方文档

  2. 点击 VSCode 终端按钮 打开 ESP-IDF 终端,执行 idf.py menuconfig 命令进入配置界面,选择 Xiaozhi Assistant:


  3. 选择 Board Type 进入开发板类型选择:


  4. 选择与您的开发板对应的产品型号:


  5. 按 S 键保存配置并退出,然后点击 一键编译烧录 一键构建、烧录和监视图标,自动完成编译、烧录和串口监视。

2.4 开始配网

  1. 使用手机或电脑连接设备的 WiFi 热点:Xiaozhi-xxxxxx。连接成功后通常会自动跳转到配置页面,若未自动跳转,请手动在浏览器中访问 http://192.168.4.1

  2. 在网络配置页面选择要连接的 WiFi 名称(仅支持 2.4G 频段;若要连接 iPhone 热点,需在手机系统设置中开启最大兼容性),SSID 将自动填入,输入密码后点击 Connect 开始连接:


2.5 添加新设备到管理后台

  1. 确保设备已成功连接到互联网,此时设备会播报 6 位设备验证码(可重复唤醒设备再次播报)。

  2. 访问 小智 AI 控制面板,如未注册请先完成账号注册并登录:


  3. 输入 6 位验证码后,设备将自动激活并显示在设备管理页面,即可正常使用。

  4. 说出唤醒词 "你好,小智" 即可唤醒设备,开始语音对话。

  5. ESP32-S3-Touch-AMOLED-1.8 按键说明:

    • BOOT 按键:按下可唤醒小智
    • PWR 按键:短按开机,长按 6 秒以上关机



Arduino 开发

请注意:该教程使用 ESP32-S3-Zero 作为教学示例,所有硬件代码均基于其引脚布局。在动手实践前,建议您对照手中的开发板引脚图,确认引脚配置无误。

配置开发环境

1. 安装和配置 Arduino IDE

请参考 安装和配置 Arduino IDE 教程 下载安装 Arduino IDE 并添加 ESP32 支持。

2. 安装库

要运行示例,需要安装对应的库。示例代码使用 GFX Library for Arduino 库驱动 ST7789 显示屏 ,并使用 SensorLib 库驱动 CST816 触摸芯片。

可从 此链接 下载 ESP32-S3-Touch-LCD-1.54 开发板的示例程序包。包内的 Arduino\libraries 目录已包含本教程所需的全部库文件。

库或文件名称说明版本安装方式
lvglLVGL 图形化库v8.4.0 或 v9.3.0通过库管理器或手动安装
GFX_Library_for_ArduinoGFX 图形化库v1.6.0通过库管理器或手动安装
U8g2图形显示库v2.35.30通过库管理器或手动安装
SensorLib传感器驱动库v0.3.1通过库管理器或手动安装
ESP32-audioI2S-master音频处理库v3.4.0通过库管理器或手动安装
OneButton按键库v2.6.1通过库管理器或手动安装
版本兼容性说明

LVGL 及其驱动库的版本之间存在较强的依赖关系。例如,为 LVGL v8 编写的驱动可能不兼容 LVGL v9。为确保示例能够稳定复现,推荐使用上表列出的特定版本。混合使用不同版本的库可能导致编译失败或运行时异常。

安装步骤:

  1. 解压已下载的 示例程序包

  2. 将其 Arduino\libraries 目录下的所有文件夹(ESP32-audioI2S-master 、GFX_Library_for_Arduino 等)复制到 Arduino 的库文件夹中。

    信息

    Arduino 库文件夹的路径通常是:c:\Users\<用户名>\Documents\Arduino\libraries

    也可以在 Arduino IDE 中通过 文件 > 首选项,查看“项目文件夹位置”来定位。库文件夹就是此路径下的 libraries 文件夹。

  3. 其他安装方式请参考:Arduino 库管理教程

ESP32-S3-Touch-LCD-1.54 所需开发板安装说明

板名称板安装要求版本号要求
ESP32 by Espressif Systems“离线”安装/“在线”安装3.2.0

3. 其他提示

ESP32-S3-Touch-LCD-1.54 需要选择及配置开发板。


  1. ESP32-S3-Touch-LCD-1.54 需要选择 ESP32S3 Dev Module。
  2. 选择 USB 端口
  3. ESP32-S3-Touch-LCD-1.54 使用 ESP32-S3 原生 USB 接口,而非 UART 转 USB。对于串口通信:
    • printf() 函数可直接使用;

    • 若要使用 Serial.println() 函数,需要额外配置:在 IDE 工具菜单中启用"USB CDC On Boot"选项,或在代码中声明 HWCDC 对象处理 USB 串口通信。

  4. 选择 16MB flash
  5. 选择合适大小的分区表

示例程序

Arduino 示例程序位于 示例程序包 的 Arduino/examples 目录中。

示例程序基础例程说明依赖库
01_audio_out读取 SD 卡的音频文件,并播放ESP32-audioI2S-master
02_button_example按键测试OneButton
03_qmi8658_example打印 IMU 获取的数据SensorLib FastLED
04_gfx_helloworld屏幕上显示 HelloWorldGFX_Library_for_Arduino
05_esp_wifi_analyzer屏幕上显示 WiFi 信号强度GFX_Library_for_Arduino
06_gfx_u8g2_font通过加载字库,实现各国文字显示GFX_Library_for_Arduino、U8g2
07_sd_card_test测试 SD 卡的读写---
08_lvgl_example_v8lvgl v8.4.0 示例程序GFX_Library_for_Arduino、lvgl
09_lvgl_example_v9lvgl v9.3.0 示例程序GFX_Library_for_Arduino、lvgl
10_esp_sr测试语音唤醒、语音识别---

01_audio_out

本示例演示 ESP32-S3-Touch-LCD-1.54 读取 SD 卡的音频文件并使用喇叭播放,屏幕无现象,支持 MP3、AAC、WAV 等格式。

代码

01_audio_out.ino

代码解释

  • 初始化 SD 卡:

      if (!SD_MMC.setPins(clk, cmd, d0, d1, d2, d3)) {
    Serial.println("Pin change failed!");
    return;
    }
    if (!SD_MMC.begin()) {
    Serial.println("Card Mount Failed");
    return;
    }
  • 设置 I2S 引脚和音量大小:

    audio.setPinout(I2S_BCLK, I2S_LRC, I2S_DOUT, I2S_MCLK);
    audio.setVolume(21); // 0...21
  • 设置播放的音频文件:

    audio.connecttoFS(SD_MMC, "music/1.mp3");

运行效果

  • 播放音频文件,屏幕无现象

02_button_example

  • 本示例演示如何使用 OneButton 库读取按键的单击、双击和长按等状态,并通过串口打印。

代码

02_button_example.ino

代码解释

  • 绑定回调函数:

    button1.attachClick(click1);
    button1.attachDoubleClick(doubleclick1);
    button1.attachLongPressStart(longPressStart1);
    button1.attachLongPressStop(longPressStop1);
    button1.attachDuringLongPress(longPress1);

运行效果

  • 屏幕无现象
  • 串口打印按钮信息

03_qmi8658_example

  • 本示例使用 ESP32-S3-LCD-1.54 获取板载 QMI8658 的数据并使用串口打印

代码

03_qmi8658_example.ino

代码解释

  • 初始化 QMI8658:

     if (!qmi.begin(Wire, QMI8658_L_SLAVE_ADDRESS, SENSOR_SDA, SENSOR_SCL)) {
    Serial.println("Failed to find QMI8658 - check your wiring!");
    while (1) {
    delay(1000);
    }
    }

运行效果

  • 屏幕无现象
  • 打开串口监视器,可以看到打印的 x、y、z 轴的 accel 和 gyro 数据

04_gfx_helloworld

  • 本示例演示 ESP32-S3-Touch-LCD-1.54 使用 GFX_Library_for_Arduino 库驱动屏幕并在屏幕上显示 HelloWorld

代码

04_gfx_helloworld.ino

代码解释

  • 配置屏幕接口、分辨率等
    Arduino_DataBus* bus = new Arduino_ESP32SPI(45 /* DC */, 21 /* CS */, 38 /* SCK */, 39 /* MOSI */, -1 /* MISO */);
    Arduino_GFX* gfx = new Arduino_ST7789(
    bus, 40 /* RST */, 0 /* rotation */, true, 240, 240);

运行效果

  • 屏幕显示

05_esp_wifi_analyzer

  • 本示例演示 ESP32-S3-Touch-LCD-1.54 使用 GFX_Library_for_Arduino 库显示 WiFi 频段信号强度

代码

05_esp_wifi_analyzer.ino

运行效果

  • 屏幕显示

06_gfx_u8g2_font

  • 本示例演示 ESP32-S3-Touch-LCD-1.54 使用 GFX_Library_for_Arduino 库通过加载字库,实现各国文字显示

代码

06_gfx_u8g2_font.ino

运行效果

  • 屏幕显示

07_sd_card_test

  • 本示例使用 ESP32-S3-Touch-LCD-1.54 测试 SD 卡的读写功能

代码

07_sd_card_test.ino

代码解释

  • SD 卡初始化 :

    if (!SD_MMC.setPins(clk, cmd, d0, d1, d2, d3)) {
    Serial.println("Pin change failed!");
    return;
    }
    if (!SD_MMC.begin()) {
    Serial.println("Card Mount Failed");
    return;
    }

运行效果

  • 屏幕无现象
  • 打开串口监视器

08_lvgl_example_v8

本示例演示了使用 ESP32-S3-Touch-LCD-1.54 运行 lvgl(v8.4.0)示例程序。

需要安装 lvgl v8.4.0 版本,如已安装其他版本,请重新安装。


代码

08_lvgl_example_v8.ino

运行效果

  • 屏幕显示

09_lvgl_example_v9

本示例演示了使用 ESP32-S3-Touch-LCD-1.54 运行 lvgl(v9.3.0)示例程序。

需要安装 lvgl v9.3.0 版本,如已安装其他版本,请重新安装。


代码

09_lvgl_example_v9.ino

运行效果

  • 屏幕显示

10_esp_sr

本示例演示了使用 ESP32-S3-LCD-1.54 运行 ESP_SR 示例程序。

准备工作

  • Arduino 工程参数设置,Partition Scheme: "ESP SR 16M (3MB APP/7MB SPIFFS/2.9MB MODEL)"

代码

10_esp_sr.ino

代码解释

  • 初始化 ES7210 以及 I2S 接口
    Wire.begin(I2C_PIN_SDA, I2C_PIN_SCL);
    es7210_init();
    i2s.setPins(I2S_PIN_BCK, I2S_PIN_WS, I2S_PIN_DOUT, I2S_PIN_DIN, I2S_PIN_MCK);
    i2s.setTimeout(1000);
    i2s.begin(I2S_MODE_STD, 16000, I2S_DATA_BIT_WIDTH_16BIT, I2S_SLOT_MODE_STEREO);
  • 初始化 ESP_SR
    ESP_SR.onEvent(onSrEvent);
    ESP_SR.begin(i2s, sr_commands, sizeof(sr_commands) / sizeof(sr_cmd_t), SR_CHANNELS_STEREO, SR_MODE_WAKEWORD);
  • 语音识别指令设置,生成语音控制指令
        static const sr_cmd_t sr_commands[] = {
    { 0, "Turn on the light", "TkN nN jc LiT" },
    { 0, "Switch on the light", "SWgp nN jc LiT" },
    { 1, "Turn off the light", "TkN eF jc LiT" },
    { 1, "Switch off the light", "SWgp eF jc LiT" },
    { 1, "Go dark", "Gb DnRK" },
    { 2, "Start fan", "STnRT FaN" },
    { 3, "Stop fan", "STnP FaN" },
    };

运行效果

  • 设备唤醒词为 “Hi ESP”
  • 唤醒后可通过语音识别指令进行操作

ESP-IDF

请注意:该教程使用 ESP32-S3-Zero 作为教学示例,所有硬件代码均基于其引脚布局。在动手实践前,建议您对照手中的开发板引脚图,确认引脚配置无误。

配置 ESP-IDF 开发环境

信息

对于 ESP32-S3-Touch-LCD-1.54 开发板,需要使用 ESP-IDF V5.5.0 以上版本。

备注

以下内容以 Windows 系统为例,使用 VS Code + ESP-IDF 扩展 的方式进行开发。Mac/Linux 用户请参考 官方说明

安装 ESP-IDF 开发环境

  1. 前往 ESP-IDF Installation Manager 下载 ESP-IDF 安装管理器。这是乐鑫最新推出的跨平台安装工具,下文将演示如何使用其离线安装功能。

    在页面中点击 Offline Installer 标签,然后在筛选栏中选择 Windows 操作系统和你要安装的版本。


    确认选择无误后,点击下载按钮。浏览器将自动同时下载两个文件:一个是 ESP-IDF 离线整合包(.zst),另一个是 ESP-IDF 安装器(.exe)


    请耐心等待两个文件下载完成。

  2. 下载完成后,双击运行 ESP-IDF 安装器(eim-gui-windows-x64.exe)

    启动后,可在右上角将界面语言切换为中文。


    安装工具会自动检测同一目录下是否存在离线整合包。点击 从存档安装


    接下来,选择安装路径。建议使用默认路径;若需自定义,请确保路径中不包含中文或空格。确认无误后,点击 开始安装


  3. 当看到如下界面时,表示 ESP-IDF 已安装成功。


  4. 建议同时安装驱动程序。点击 完成安装,然后点击 安装驱动程序


安装 Visual Studio Code 与 ESP-IDF 扩展

  1. 下载并安装 Visual Studio Code

  2. 安装时建议勾选 通过 Code 打开操作添加到 Windows 资源管理器文件上下文菜单,以便快速打开项目文件夹。

  3. 在 VS Code 中,点击侧边活动栏中的 扩展图标(或使用快捷键 Ctrl + Shift + X)打开 扩展 视图。

  4. 在搜索框中输入 ESP-IDF,找到 ESP-IDF 扩展并点击安装。


  5. 当 ESP-IDF 扩展版本 ≥ 2.0 时,扩展会自动检测并识别上述步骤中安装的 ESP-IDF 环境,无需手动配置。

示例程序

ESP-IDF 示例程序位于 示例程序包 的 ESP-IDF 目录中。

01_factory

本示例演示是 ESP32-S3-Touch-LCD-1.54 的综合示例,也是出厂默认烧录的示例。

硬件连接

  • 将开发板接入电脑

运行效果




  • 第一个页面显示红,绿,蓝三种颜色轮换
  • 第二个页面显示开发板信息
  • 第三个页面显示 IMU 读取到的数据
  • 第四个页面显示已连接 wifi 的 ip 地址(未连接,连接失败显示 0.0.0.0)和 搜索到的 wifi

具体操作

  • 长按左键不松开,扬声器实时播放麦克风采集的声音。
  • 双击中键屏幕熄屏,再次双击屏幕恢复显示。
  • 使用电池供电时,长按中键开机,再次长按并松开关机
  • 单击左右键进行页面切换

02_button_example

本示例演示如何使用 espressif/button 库读取按键的单击、双击和长按等状态,并通过串口打印。

硬件连接

  • 将开发板接入电脑

代码解释

  • 绑定回调函数 :

      ret = iot_button_register_cb(boot_btn, BUTTON_PRESS_DOWN, NULL, button_event_cb, NULL);
    ret |= iot_button_register_cb(boot_btn, BUTTON_PRESS_UP, NULL, button_event_cb, NULL);
    ret |= iot_button_register_cb(boot_btn, BUTTON_PRESS_REPEAT, NULL, button_event_cb, NULL);
    ret |= iot_button_register_cb(boot_btn, BUTTON_PRESS_REPEAT_DONE, NULL, button_event_cb, NULL);
    ret |= iot_button_register_cb(boot_btn, BUTTON_SINGLE_CLICK, NULL, button_event_cb, NULL);
    ret |= iot_button_register_cb(boot_btn, BUTTON_DOUBLE_CLICK, NULL, button_event_cb, NULL);
    ret |= iot_button_register_cb(boot_btn, BUTTON_LONG_PRESS_START, NULL, button_event_cb, NULL);
    ret |= iot_button_register_cb(boot_btn, BUTTON_LONG_PRESS_HOLD, NULL, button_event_cb, NULL);
    ret |= iot_button_register_cb(boot_btn, BUTTON_LONG_PRESS_UP, NULL, button_event_cb, NULL);
    ret |= iot_button_register_cb(boot_btn, BUTTON_PRESS_END, NULL, button_event_cb, NULL);

运行效果

  • 屏幕无现象
  • 打开串口调试工具,串口打印按钮信息

03_qmi8658_example

本示例演示如何使用 sensorlib 库读取读取 qmi8658 的数据并打印

硬件连接

  • 将开发板接入电脑

代码解释

  • 读取 qmi8658 的 Accelerometer、Gyroscope 以及 Timestamp
      if (qmi.getDataReady())
    {
    if (qmi.getAccelerometer(acc.x, acc.y, acc.z))
    {
    printf("ACCEL--x:%5.2f y:%5.2f z:%5.2f ", acc.x, acc.y, acc.z);
    }

    if (qmi.getGyroscope(gyr.x, gyr.y, gyr.z))
    {
    printf("GYRO--x:%5.2f y:%5.2f z:%5.2f ", gyr.x, gyr.y, gyr.z);
    }
    printf("Temperature:%5.2f degrees C", qmi.getTemperature_C());
    }
    printf("Timestamp:%ld \r\n", qmi.getTimestamp());

运行效果

  • 屏幕无现象
  • 打开串口调试工具,串口打印 qmi8658 的数据信息

04_sd_card_test

本示例使用 ESP32-S3-Touch-LCD-1.54 对 SD 卡的读写功能进行测试。

硬件连接

  • 将 SD 卡插入卡槽(SD 卡需要格式化为 FAT32)
  • 将开发板接入电脑

代码解释

  • SD 卡初始化,并挂载:

      sdmmc_slot_config_t slot_config = SDMMC_SLOT_CONFIG_DEFAULT();
    #if EXAMPLE_IS_UHS1
    slot_config.flags |= SDMMC_SLOT_FLAG_UHS1;
    #endif

    // Set bus width to use:
    #ifdef CONFIG_EXAMPLE_SDMMC_BUS_WIDTH_4
    slot_config.width = 4;
    #else
    slot_config.width = 1;
    #endif

    // On chips where the GPIOs used for SD card can be configured, set them in
    // the slot_config structure:
    #ifdef CONFIG_SOC_SDMMC_USE_GPIO_MATRIX
    slot_config.clk = CONFIG_EXAMPLE_PIN_CLK;
    slot_config.cmd = CONFIG_EXAMPLE_PIN_CMD;
    slot_config.d0 = CONFIG_EXAMPLE_PIN_D0;
    #ifdef CONFIG_EXAMPLE_SDMMC_BUS_WIDTH_4
    slot_config.d1 = CONFIG_EXAMPLE_PIN_D1;
    slot_config.d2 = CONFIG_EXAMPLE_PIN_D2;
    slot_config.d3 = CONFIG_EXAMPLE_PIN_D3;
    #endif // CONFIG_EXAMPLE_SDMMC_BUS_WIDTH_4
    #endif // CONFIG_SOC_SDMMC_USE_GPIO_MATRIX

    // Enable internal pullups on enabled pins. The internal pullups
    // are insufficient however, please make sure 10k external pullups are
    // connected on the bus. This is for debug / example purpose only.
    slot_config.flags |= SDMMC_SLOT_FLAG_INTERNAL_PULLUP;

    ESP_LOGI(TAG, "Mounting filesystem");
    ret = esp_vfs_fat_sdmmc_mount(mount_point, &host, &slot_config, &mount_config, &card);

运行效果

  • 屏幕无现象
  • 打开串口调试工具,串口打印 SD 卡信息

05_lvgl_example

本示例演示了 ESP32-S3-Touch-LCD-1.54 运行 lvgl 示例程序(支持 lvgl v8 和 lvgl v9)

  • 默认使用的 LVGL 版本为 v9.3.0。如需更换版本,请修改 main/idf_component.yml 文件中的 LVGL 配置,例如将其改为 lvgl/lvgl:^8.4.0

硬件连接

  • 将开发板接入电脑

代码解释

  • 初始化:

       /* LCD HW initialization */
    ESP_ERROR_CHECK(app_lcd_init());

    /* Touch initialization */
    app_touch_init();

    /* LVGL initialization */
    ESP_ERROR_CHECK(app_lvgl_init());

运行效果


相关资料

1. 硬件资料

开发板设计文件

2. 技术手册

3. 示例程序

4. 软件工具