ESP32-S3-LCD-1.28(以下统称开发板) 是一款微雪 (Waveshare) 设计的低成本,高性能的微控制器开发板。其中板载了 1.28 英寸 LCD 屏、锂电池充电芯片、六轴传感器(三轴加速度计与三轴陀螺仪)等外设,采用的 ESP32-S3R2 是集成了低功耗 Wi-Fi 和 BLE5.0 的系统级芯片(SoC),此外还具有外部 16MB Flash 和 2MB PSRAM。Soc内部的硬件加密加速器、RNG、HMAC 和数字签名 (Digital Signature) 模块,可以满足物联网的安全要求。多种低功耗工作状态满足在物联网 (IoT)、移动设备、可穿戴电子设备、智能家居等应用场景的功耗需求。
LCD参数 | |||
显示芯片 | GC9A01A | 显示接口 | SPI |
分辨率 | 240(H)RGB x 240(V) | 显示尺寸 | Φ32.4mm |
显示面板 | IPS | 像素大小 | 0.135(H)x0.135(V)mm |
IMU参数 | |||
传感器名称 | QMI8658 | ||
加速度计特性 | 分辨率:16 位 量程 (可选):±2、±4、±8、±16g | ||
陀螺仪特性 | 分辨率:16 位 量程 (可选):±16、±32、±64、±128、±256、±512、 ±1024、±2048°/sec |
ESP32-S3R2 | LCD | MX1.25 | QMI8658 | other |
GPIO0 | BOOT0 | |||
GPIO1 | ADC | |||
GPIO5 | TP_INT | |||
GPIO6 | SDA | |||
GPIO7 | SCL | |||
GPIO8 | LCD_DC | |||
GPIO9 | LCD_CS | |||
GPIO10 | LCD_CLK | |||
GPIO11 | LCD_MOSI | |||
GPIO12 | LCD_RST | |||
GPIO40 | LCD_BL | |||
GPIO47 | INT1 | |||
GPIO48 | INT2 |
ESP32 系列开发板的软件框架成熟,可使用 C/C++(Arduino,ESP-IDF),MicroPython 等进行快速开发产品原型,以下简要介绍:
1. 下载安装Arduino IDE,注意默认配置及全英文路径
2. Arduino IDE 安装 ESP32 库,详细安装过程如下,相关资料请点击链接参考
1. 下载离线包esp32_packages2.0.12_arduinome.exe 后双击安装,若之前在线安装失败,请删除掉 %LOCALAPPDATA%/Arduino15/packages 下的 esp32 文件夹
2. 安装离线包后,打开 Arduino IDE,在 File->Preferences 下 Settings 界面的 Additional boards manager URLs 处填写下面链接后保存
https://arduino.me/packages/esp32.json
3. 重启 Arduino IDE,离线包安装完成
1. 在 File->Preferences 下 Settings 界面的 Additional boards manager URLs 处填写下面链接后保存
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
2. 在 Board Manager 中搜索 esp32 进行安装,下载安装完成后重启 Arduino IDE 生效
3. 打开 Arduino IDE,注意菜单栏中 Tools 选择 16MB Flash 和使能 QSPI PSRAM,如下图所示
1. 下载安装最新 Thonny IDE后,打开Thonny IDE -> Configure interpreter...,如下图所示
2. Type-C 接口接入USB线缆,查找设备管理器或对应COM口,下载或运行程序,具体请查看硬件连接章节
3. 本教程请忽略此步骤(直接跳到第四步),按照下图步骤所示选择 ESP32-S3 系列的在线 MPY 固件下载,下载前会清除开发板的 Flash 内容,整个下载过程持续1分钟左右,MPY固件可以在官网下载
4. 目前开发板使用定制的固件进行开发,打开flash_download_tool_3.9.5下载固件工具,固件在示例程序中,固件制作来自链接,固件合并成单个文件,注意下载地址是0x0位置
5. 烧录固件,按下RESET按键,将 mpy 目录下的示例程序导入开发板,如下图所示
Arduino 示例程序可以使用 arduino-esp32 或 Arduino IDE 中的 File->examples中的示例程序(如:ESP32的GPIO、WIFI等通用示例使用),若需要使用到屏幕驱动,可参考屏幕驱动程序请查阅示例程序中esp32-s3-lcd-1.28-demo例程的屏幕驱动
esp32-s3-lcd-1.28-demo 示例,用于测试屏幕、六轴传感器、BAT、触摸屏的使用
上电后,屏幕先间隔2秒显示白,红,绿,蓝四种颜色,检查屏幕有无漏光和黑点,若屏幕太快未看清,请按 RESET 按键重新复位开始 a.接着进入传感器测试环节,颜色显示完毕后,将会在屏幕上显示传感器数据,静止时,ACC_X和ACC_Y数值低于200,ACC_Z数值 在1000 左右,GYR_X ,GYR_Y ,GYR_Z 数值在0~10左右 属于正常情况,若数值混乱,则可能是六轴传感器损坏 b.此时接上3.7V锂电池,正常情况下,BAT(V)数值会降低
Arduino_LVGL 示例,用于显示 LVGL benchmark,music 等,LVGL 的具体开发请参考LVGL开发文档
void my_disp_flush( lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_color_t *color_p ) 参数: lv_disp_drv_t *disp_drv:LVGL: 提供的显示驱动结构体指针,包含了与显示相关的信息和函数指针。在这个函数中,用于向 LVGL 通知刷新完成 const lv_area_t *area:LVGL : 定义的区域结构体指针,表示需要刷新的区域。这个区域是相对于整个显示屏幕的一个矩形区域 lv_color_t *color_p:LVGL : 定义的颜色结构体指针,表示要在刷新区域内显示的颜色数据。在这个函数中,通过将这些颜色数据写入 TFT 缓冲区,完成绘制
void example_increase_lvgl_tick(void *arg)
void example_increase_reboot(void *arg)