ESP32-S3-4inch-GC9503 使用教程

资料


产品规格书:

http://doc.panel-tag.cn/_static/espboard/ESP32S3/ZX3D95CE01S-TR-4848.pdf


ESP-IDF  代码下载:

https://cdn.static.spotpear.cn/uploads/picture/learn/ESP32/ESP32-S3-4inch/qmsd-esp32-bsp-master.zip


Arduino 代码下载:

https://cdn.static.spotpear.cn/uploads/picture/learn/ESP32/ESP32-S3-4inch/lvgl_demo.zip



QMSD-ESP32-BSP

qmsd-esp32-bsp 包含了屏幕驱动、触摸功能和 UI 框架等,方便用户快速开发启明智显开发板。

已支持的开发板:

  • ZX2D10CE01S-4848
  • ZX2D10GE01R-V-4848
  • ZX2D80CECOF-2432
  • ZX3D50CE02S-USRC-4832
  • ZX3D95CE01S-AR-4848
  • ZX3D95CE01S-TR-4848
  • ZX3D95CE01S-UR-4848
  • ZX4D30CE08S-4827
  • ZX4D30NE01S-UR-4827
  • ZX7D00CE01S-8048

注意:我们的开发板是:ZX3D95CE01S-TR-4848

支持的UI驱动, 默认为 LVGL-8.3.1

  • LVGL-8.3.1
  • LVGL-7.11

支持的传感器:

  • aht20 - 温湿度传感器
  • sht20 - 温湿度传感器
  • al01 - 遥控器驱动芯片
  • aw9523 - IO扩展芯片
  • encoder_ab - AB编码器
  • ltr303als01 - 亮度传感器

其它的一些库:

  • I2C 驱动库,进行了一些底层的封装,更实用些,触摸有使用I2C时,建议使用此驱动,保证I2C读写线程安全,exmaple
  • Button 支持,带有ADC按键和普通按键,支持回调和阻塞读取状态
  • MP3 解码库,对libhelix-mp3的一个FreeRTOS数据流封装

使用说明

ESP-IDF 支持

使用前依赖:

  1. 安装ESP-IDFv4.4 (v5.0v5.1)环境 (教程) ,测试可以成功编译ESP-IDF里的example/get-started,
  2. 选择芯片为ESP32-S3,再次成功编译example/get-started

使用步骤:

  1. 进入example/get-start
  2. 载入ESP-IDF环境
  3. idf.py load-board 载入目标开发板配置
  4. idf.py build 编译

使用qmsd-esp32-bsp作为组件

方法一:设置环境变量 QMSD_8MS_PATH 指向SDK的地址,CMakeLists.txt 里 添加

include($ENV{QMSD_8MS_PATH}/component.cmake)

方法二:将SDK拷贝到个人工程,命名为 xxx,CMakeLists.txt 里 添加

set(ENV{QMSD_8MS_PATH} ${CMAKE_SOURCE_DIR}/xxx)
include($ENV{QMSD_8MS_PATH}/component.cmake)

参考example/get-start/CMakeLists.txt

使用到的ESP32硬件外设

  • LEDC -> LEDC_TIMER_3,LEDC_LOW_SPEED_MODE,LEDC_CHANNEL_5,LEDC_TIMER_10_BIT
  • I2C0 -> 触摸使用,FREQ:400KHZ,需要触摸功能时,且需要使用触摸的I2C引脚时,驱动请使用 i2c_bus, 具体使用参照aw9523的读写示例

快捷命令

载入开发板配置

在工程下运行

idf.py load-board

会出现下面选项,板子型号基于sdk支持会动态变化

--- Please select board to load sdkconfig ---
0): ZX1D28CEC27R-2424
1): ZX2D10GE01R-V-4848
2): ZX3D50CE02S-USRC-4832
3): ZX3D95CE01S-AR-4848
4): ZX3D95CE01S-UR-4848
5): ZX4D30NE01S-UR-4827
x): exit
Select board [0 ~ 5]:

输入目标型号,按下回车,脚本会创建sdkconfig.defaults文件,并配置sdkconfig到目标开发板。

如果load-board失败,可以按以下步骤解决:

  1. components/qmsd_board/board目录下找到对应的板子。
  2. 在该板子的目录下找到sdkconfig.defaults文件。
  3. sdkconfig.defaults文件复制到工程目录下, 如果已经存在则进行替换。
  4. 删除工程目录下的sdkconfig文件。
  5. 执行命令:idf.py reconfigure

这样就可以手动载入配置文件,后续不需要再执行idf.py load-board命令

打包固件

在项目成功编译后,运行:

idf.py generate-firmware

脚本会找到build文件夹中生成的bin文件,然后打包合成单个,在运行目录下生成 firmware_xxx.bin,xxx代表bin文件烧录的偏移地址

发布项目

脚本可快速打包需要打包的components提取编译好的.a文件用于发布

判断是否需要打包的规则: 项目目录里components中如果存在CMakeLists.release, 则会删除该component下.c文件, 替换CMakeLists.release为cmake文件, 从该工程的build目录提取.a文件到component下

在项目成功编译后,运行:

idf.py release-components

运行后项目目录的build下面生成一个component_release目录, 里面.a文件与cmake文件已替换好,是一个单独的工程

其它参考资源