ESP32-S3-AMOLED-1.91 使用教程

说明

产品简介

ESP32-S3-AMOLED-1.91 是一款由微雪 (Waveshare) 设计的低成本、高性能、扩展性强的ESP32_GUI开发板。具有触摸版本和不带触摸版本两个版本,均支持 2.4GHz WiFi 和 BLE 5,集成大容量 Flash 和 PSRAM,板载RTC、IMU、 1.91 英寸AMOLED屏,外露UART、GPIO、I2C、USB总线接口,同时我们还提供大量例程和技术支持,可供你快速开发自动化、物联网产品。

产品特性

  • 搭载高性能 Xtensa 32 位 LX7 双核处理器,主频高达 240MHz
  • 支持 2.4 GHz Wi-Fi (802.11 b/g/n) 和 Bluetooth 5 (LE),板载天线
  • 内置 512KB SRAM 和 384KB ROM,叠封 16MB Flash 和 8MB PSRAM
  • 板载 1.91 英寸宽电容AMOLED屏,536 × 240 分辨率,65K 彩色
  • AMOLED屏显示使用 QSPI接口,提升速度的同时节省大量IO
  • 触摸版本使用 I2C接口与触摸芯片进行通信,支持 5 点触控、中断输出
  • 板载 IMU、SD卡座;外观采用开发板形式,外露大量GPIO,使之满足各种场合

硬件说明

接口说明

  • GPIO接口:可以复用实现ADC、SPI、CAN、ETH、USB等各种接口,触摸版本的GPIO39、GPIO40用于I2C通信,不可用于其他功能
  • UART 接口:可以转接RS485、RS232等总线,从而实现工业自动化控制。
  • MX1.25 电池接口:开发板使用高效智能充放电芯片,自动实现充放电,使电池管理更加高效。

详情请查阅原理图 需要注意没有触摸版本的LCD部分除了I2C其余均一样

引脚连接
ESP32-S3-AMOLED-1.91USBBAT_ADCMicor SDQMI8658UARTAMOLEDOUT
GPIO0GPIO0
GPIO1BAT_ADCBAT_ADC
GPIO2GPIO2
GPIO3GPIO3
GPIO4GPIO4
GPIO5DB1
GPIO6CS
GPIO7DCX_RS
GPIO8SD_MISOSDO
GPIO9SD_CSTE
GPIO10GPIO10
GPIO11GPIO11
GPIO12GPIO12
GPIO13GPIO13
GPIO14GPIO14
GPIO15GPIO15
GPIO16GPIO16
GPIO17GPIO17
GPIO18RD_SDI
GPIO19USB_NUSB_N
GPIO20USB_PUSB_P
GPIO21GPIO21
GPIO26GPIO26
GPIO33GPIO33
GPIO34GPIO34
GPIO35GPIO35
GPIO36GPIO36
GPIO37GPIO37
GPIO38GPIO38
GPIO39IMU_SCLTP_SCLIMU_SCL
GPIO40IMU_SDATP_SDAIMU_SDA
GPIO41TP_INT
GPIO42SD_MOSI
GPIO43U0TXDU0TXD
GPIO44U0RXDU0RXD
GPIO45IMU_INT1
GPIO46IMU_INT2
GPIO47SD_CLKWRX_SCL
GPIO48DB0
ENRESET

产品尺寸





其它说明

  • 如果用户需要使用I2C总线,需要注意,板载I2C从机已占用以下地址(7位地址):
  触摸芯片I2C地址:0X38
  IMU芯片I2C地址 :0X6B

环境设置

ESP32 系列开发板的软件框架成熟,可使用 C/C++(Arduino,ESP-IDF),MicroPython 等进行快速开发产品原型,以下简要介绍:

  • 乐鑫官方的 C/C++ 库方便快速安装,中国大陆用户遇到下载问题请查看FAQ解决
    • ESP32系列 的 Arduino 开发手册
    • ESP32系列 的 ESP-IDF 开发手册
  • 环境设置是在 Windows 10 系统下进行,用户可以选择使用 Arduino 或 Visual Studio Code(ESP-IDF) 作为 IDE 进行开发,Linux和Mac用户可访问下面链接参考

ESP-IDF(VScode环境下)


1.先搭建本地的ESP-IDF环境,通过链接 https://dl.espressif.cn/dl/esp-idf/?idf=4.4 打开往下拉,选中espidf-v5.1.4如图,假如上面没有显示,就点击下面的Download



2.下载下来之后,直接双击打开,全部点击下一步,需要注意的是,安装路径不能有中文



选择自定义安装把所有的都勾选上



等待安装完成,如果显示以下信息表示安装完成



安装完成之后打开系统变量编辑,看是否有相关变量加入系统,如图:



3.接着直接百度搜索VSCode,进入官网下载WINDOWS版本(最好下载次最新版本),安装路径同样不能有中文,安装完成之后打开系统环境变量编辑,查看有没有把VSCode包含进去(如果没有VSCode变量,必须手动加进去),点击用户变量->path->编辑如下图:



4.打开VSCode,点击左侧的扩展,在扩展搜索并安装C/C++,ESP-IDF。最后简体中文根据个人喜好安装,想安装可以直接扩展搜Chines (Simplified)(简体中文)。

5.安装完成上面的必须扩展之后重新打开VSCode,点击左侧ESP-IDF的标志进行配置,如图:



6.点进去之后,根据图片进行安装如图:



首先检查一下系统环境变量里面有没有ESP-TOOLS-PATH和ESP-PATH变量,如果没有需要手动加入,该处的ESP-TOOLS-PATH和ESP-PATH目录就是对应系统环境变量里面的目录,设置好之后,开始点击安装,如果安装过程中出现ERROR_INVALID_PIP错误,可以删除*/Espressif/tools 内的 idf-git 和 idf-python 两个文件夹,然后重新开始安装,最后跳出需要下载esp tools的时候,可以选择本地查找,然后继续

7.安装完成之后应该可以新建项目如图(项目工程不能有中文路径):




最后会出现下图这个命令(一定要点击yes):


这样工程就新建完成了,介绍一下ESP-IDF在VSCode里面一些功能如图:


最左边开始算:1.表示ESP-IDF版本 2.连接板子的COM口 3.芯片的型号 4.选择当前目录 5.ESP-IDF设置(配置) 6.清除构建生成的文件 7.开始构建文件 8.选择烧录方法 9.烧录到设备 10.监控串口 11.调试 12.构建、下载、监控设备一起实现

Arduino

  • 安装完成之后,打开IDE
  • 进入首选项


  • 添加 JSON 链接
https://espressif.github.io/arduino-esp32/package_esp32_index.json



  • 将项目文件夹修改为 C:\Users\Waveshare\AppData\Local\Arduino15\packages(其中 Waveshare 为计算机用户名)


  • 进入开发板管理器,搜索 esp32 ,在下方的 esp32 by Espressif Systems 中选择 3.0.2 版本并点击安装(若不能正常安装可使用手机热点尝试)


  • 安装完成重启 Arduino IDE 即可使用

安装库文件

  • 如果之前有相同的库,需要备份,防止冲突,需要安装的库只有一个,LVGL库版本V8.3.11
  • 打开Arduino IDE,进入首选项,查看库的目录地址如下:



  • 进入到该目录(该目录中的ag是电脑用户名),该目录下有个libraries目录,进入到该目录之后,把下载的库文件解压之后提取到这里即可完成,如图:



  • 上述所使用的库文件链接:Library

示例程序

ESP-IDF

  • 在进行下面的例程时必须要配置的一些信息:
    • 下面例程都是基于库文件ESP-IDF-V5.1.4 代码编辑器VSCode
    • 通过上面的环境搭建,而且新建任何一个工程都可以成功编译下载固件到开发板
    • 使用VSCode打开下面工程文件之后,需要配置一些宏定义,如下:



  • 先点击齿轮,进入可视化配置,当然也可以通过终端命令行的方式进入,首先搜索Flash,然后在Flash界面选择Flash SPI的方式,有很多种,一般不同的Flash大小对应不同的方式,可以在官网查看对应的手册,我们是16M,选择DIO,Flash读写速度选择80MHZ,Flash 大小选择16M,最后点击保存。



  • Flash配置完成之后,在配置PSRAM,外部RAM,同样,搜索PSRAM,然后打开外部RAM(默认是不打开的),查找方式选择自动,速度选择80MHZ(默认40MHZ),配置完成之后,再搜索system,把系统频率改到最大240MHZ(默认是160MHZ)


  • 最后我们修改一下FreeRTOS的滴答频率,同样搜索FreeRTOS,选择configTICK_RATE_HZ那选框里面把100修改成1000(必须要修改为1000)点击保存
  • 每打开一个新的例程都需要注意上面的有没有配置好,因为这样配置只是针对该例程,而不是所有ESP-IDF工程

FactoryProgram

  • 这是一个综合性工程,打开工程,先清除构建文件,再构建->下载;固件成功下载到开发板之后,可以在屏幕上看到


如果是不带触摸的板子,需要通过板子侧面BOOT按键进行切换页面,如果是带触摸的板子可以通过触摸切换页面,优先显示出模拟时钟界面
  • 触摸版本往左边划动,不带触摸版本通过按下BOOT按键切换至Argument界面,可以看到



该页面是一些板载硬件信息
  • 再次滑动/点击BOOT按键,跳转到Touch界面,如图



该界面是组件界面
  • 再次滑动/点击BOOT按键,跳转到WIFI界面,如图



ADC_Test

  • 用于读取系统当前的一个电压值,也可以认为是经过电池芯片转换之后的一个电压值;打开工程,清除构建文件,再次构建->下载固件。
  • 通过打开监控可以看到,输出ADC的值和电压,如图:





可以看到ADC采样值是1687左右,实际电压是大于3.3V,因为这是经过电池芯片升压之后的电压,想具体分析,可以点击查看原理图

SD_Test

  • 首先清除构建文件,然后构建->下载固件,下载成功之后,点击监控设备,可以看到(注意:必须先插入容量小于32G的SD卡)





可以看到输出一些SD卡的信息sios是SD卡的实际容量

IMU_Test

  • 打开工程文档,首先清除构建文件,然后构建->下载固件,点击监控设备,可以看到IMU发出来的原始数据(欧拉角需要自己转换)



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

LVGL_Test

  • LVGL目录有两个工程,一个是原始显示,一个是旋转90度显示,可以根据需求来进行选择;步骤还是先打开工程,清除构建文件,然后开始构建->下载固件;
  • 本次主要分析工程代码,效果可以直接下载观看,原始显示和旋转90度显示主要差异为两点:



在该lcd_init_cmds数组下的0x36地址,该寄存器是负责旋转的寄存器,通过修改这个寄存器的值就可以达到旋转效果,寄存器值0x30是旋转90度的值,如果不需要旋转,可以直接把整个{0x36,(uint8_t []){0x30,1,0}},删除。



旋转之后x,y已经发生变化,触摸部分需要改变,通过镜像可以实现如swap_xy=1,mirror_x=0,mirror_y=1可以实现旋转90的触摸。

WIFI_Test

  • 该工程实现芯片处于STA模式下连接WIFI而且获取到IP地址,首先清除构建文件,开始构建->下载固件,然后监控界面,在监控界面之前,需要修改一些代码,如:


修改成所处环境可用的WIFI路由器名字和密码,然后下载固件到开发板,点开监控,可以看到成功连接WIFI而且输出IP地址。

Arduino

  • 在跑例程之前,主要有两点需要注意
    • Arduino例程用了很多ESP-IDF的库而且是基于V5.1.4版本的,所以本地必须先部署有ESP-IDF-V5.1.4的环境,可参考前面环境搭建ESP-IDF部分的1步骤和2步骤
    • Arduino的工具(tools)配置必须如下:


ADC_Test

  • 用于读取系统当前的一个电压值,也可以认为是经过电池芯片转换之后的一个电压值;打开工程,编译->下载。
  • 通过打开串口监控可以看到,输出ADC的值和电压,如图:


可以看到ADC采样值是1687左右,实际电压大于3.3V,是因为经过电池芯片的升压,想具体分析,可以点击查看原理图

SD_Test

  • 首先打开工程,然后编译->下载固件,下载成功之后,点击串口监控设备,可以看到(注意:必须先插入容量小于32G的SD卡)


可以看到输出一些SD卡的信息practical_size是SD卡的实际容量

IMU_Test

  • 打开工程文档,编译->下载固件,点击串口监控设备,可以看到IMU发出来的原始数据(欧拉角需要自己转换)


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

WIFI_Test

  • 该工程实现芯片处于STA模式下连接WIFI而且获取到IP地址,在编译、下载固件之前,需要修改一些代码,如:


修改成所处环境可用的WIFI路由器名字和密码,然后下载固件到开发板,点开串口监控,可以看到成功连接WIFI而且输出IP地址。

LVGL_Test

  • 先打开工程,LVGL例程对RAM和ROM要求比较高,所以必须要按照环境搭建的要求来配置,配置好之后编译->下载固件,开发板上如图所示:



  • 针对LVGL,lvgl_conf.h是LVGL的配置文件,下面主要针对一些常用的来进行说明,如下图:


  • 还有一些LVGL的demo、文件系统都可以在conf配置文件里面设置。

Arduino_Playability

  • 我们还提供一些具有可玩性的程序,供大家参考,不过需要注意一点,下面的例程均是基于ESP32_Arduino版本低于V3.0,环境搭建可以参考下面
    • 通过下载离线包直接安装2.0.9的环境,下载完成之后双击安装,离线包
    • 点击下载需要的库文件,库文件安装方式同上面的Arduino库文件安装一样,库文件
    • 例程可点击下载,Playability_example

RGBpalette

  • 打开工程,点击编译下载,成功之后如图显示:



该例程可以触摸控制

AnimationDemo

  • 打开工程,点击编译下载,成功之后如图显示:



该例程不可以触摸控制

SliderControl

  • 打开工程,点击编译下载,成功之后如图显示:



该例程可以触摸控制

资料

文档

程序

软件

数据手册

FAQ

问题: VSCode环境搭建失败?

  • 检查系统环境变量用户变量PATA里面有没有把VSCode引进去
  • 检查系统环境变量用户变量有没有把ESP-IDF的路径加载进去


问题:Arduino程序后无反应或者编译报错?

  • 没有反应先检查Arduino IDE -> Tools有没有正确配置
  • 本地是否已经搭建好了ESP-IDF,版本是否对应(Arduino例程用到很多IDF库)


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

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


问题: 显示不了中文?

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


技术支持

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

手机:13434470212

邮箱:services04@spotpear.cn

QQ:202004841