ESP32-C6-Touch-AMOLED-1.64 使用教程

产品简介

ESP32-C6-Touch-AMOLED-1.64 是一款支持 2.4GHz Wi-Fi 6 和蓝牙 BLE 5 的微控制器开发板,配备 1.64 英寸高清 AMOLED 显示屏,可流畅运行 LVGL 等 GUI 程序。板载 IMU、Micro SD 卡槽及锂电池充电功能,外设资源丰富,同时引出 USB、UART、I2C 及多个 MUX_GPIO 接口,提供灵活扩展能力,是快速开发基于 ESP32-C6 的 HMI 应用的理想选择。

产品特性

  • 搭载 ESP32-C6 高性能 RISC-V 32 位单核处理器,主频高达 160 MHz
  • 板载 320KB ROM、512KB HP SRAM、16KB LP SRAM 和 16MB flash
  • 支持 2.4 GHz Wi-Fi 6 (802.11 b/g/n/ax)、Bluetooth® 5 (LE) 以及 IEEE 802.15.4(支持 Thread 和 Zigbee 协议),并可选板载 PCB 天线或外接天线座子
  • 板载 1.64 英寸 AMOLED 电容触摸屏,280 × 456 分辨率,16.7M 彩色
  • AMOLED 屏显示使用 QSPI 接口,电容触摸使用 I2C 接口
  • 板载 QMI8658 六轴惯性测量单元 (3 轴加速度、3 轴陀螺仪),可检测运动姿态、计步等
  • 板载 PWR、BOOT 侧边按钮,BOOT 支持自定义按键功能,开发使用更灵活
  • 板载 3.7V MX1.25 锂电池充放电接口
  • 板载 Micro SD 卡槽,可外接 SD 卡存储图片或文件
  • 板载 USB Type-C 接口,可用于供电和下载调试,方便开发使用
  • 外露 I2C、UART 以及 USB 引脚,可供外接设备和调试使用,灵活配置外设功能
  • 屏幕采用 CNC 加工结构包边贴合,质感细腻柔和,整体美观耐用

资源简介


接口介绍


AMOLED 屏幕参数

显示面板AMOLED显示尺寸1.64英寸
显示分辨率280×456像素显示颜色16.7M
显示亮度350cd/m²对比度60000:1
通信接口QSPI驱动ICCO5300
触控支持驱动ICFT6146

产品尺寸


Arduino 开发

本章节包含以下部分,请按需阅读:

Arduino 入门教程

初次接触 Arduino ESP32 开发,想要快速上手?我们为您准备了一套通用的 入门教程

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

配置开发环境

1. 安装和配置 Arduino IDE

信息

对于 ESP32-C6-Touch-AMOLED-1.64 开发板,Arduino IDE 需要安装 arduino-esp32 v3.2.0 以上版本。

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

2. 安装库

  • 在安装 Arduino 库时,通常有两种方式可供选择:在线安装 和 离线安装。若库安装要求离线安装,则必须使用提供的库文件。
  • 对于大多数库,用户可以通过 Arduino 软件的在线库管理器轻松搜索并安装。然而,一些开源库或自定义库未被同步到 Arduino 库管理器中,因此无法通过在线搜索获取。在这种情况下,用户只能通过离线方式手动安装这些库。
  • 可从 该处 下载 ESP32-C6-Touch-AMOLED-1.64 开发板的示例程序包。包内的 Arduino\libraries 目录已包含本教程所需的全部库文件。
库或文件名称说明版本安装方式
LVGL图形库v8.4.0"离线"安装
版本兼容性说明

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

3. Arduino 工程参数设置


示例程序

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

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

01_ADC_Test

【程序说明】

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

【硬件连接】

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

【代码分析】

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

【运行效果】

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

  • 插入 USB 测量的是系统电压,4.65V 左右,若想具体分析,可以查看原理图。


02_I2C_QMI8658

【程序说明】

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

【硬件连接】

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

【代码分析】

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

【运行效果】

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

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


03_SD_Card

【程序说明】

  • 通过 SPI 方式驱动 SD 卡,成功挂载 SD 卡之后把 SD 卡信息打印到终端。

【硬件连接】

  • 板子装上 SD 卡(必须先插入容量小于 64G 的 SD 卡
  • 使用 USB 线把板子接入电脑

【运行效果】

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


04_WIFI_AP

【程序说明】

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

【硬件连接】

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

【代码分析】

  • 在 05_WIFI_AP.ino 文件找到 ssid 和 password ,然后手机或其他处于 STA 模式的设备即可使用该 ssid 和 password 连接到开发板。

【运行效果】

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


05_WIFI_STA

【程序说明】

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

【硬件连接】

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

【代码分析】

  • wifi_init(void) :该函数用于初始化 ESP32 的 Wi-Fi 连接。它将 ESP32 设置为 Wi-Fi 站点模式,尝试连接到指定的 Wi-Fi 网络(通过 ssid 和 password )。如果连接成功,打印本地 IP 地址;如果在一定时间内(20 * 500 毫秒)未能连接成功,则打印连接失败信息。同时,函数还可以设置自动连接和自动重连功能。

【运行效果】

  • 芯片处于 STA 模式下成功连接 WIFI,并且点击串口监控设备,可以看到获取到的 IP 地址,如图:


06_LVGL_Test

【程序说明】

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

【硬件连接】

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

【代码分析】

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

【运行效果】

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


使用说明

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

器件准备

  • ESP32-C6-Touch-AMOLED-1.64 ×1
  • Micro SD 卡 ×1(非必需)
  • 3.7V锂电池 ×1(非必需)

注意事项

  • 使用时注意 PCB 天线区域,避免其它金属、塑料件贴合 PCB 天线。
  • GH1.25 锂电池座子只支持 单节 3.7 V 锂电池,勿使用多组电池包同时接入充放电,建议单节容量在 2000 mAh 以下

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

开发板使用 USB 下载程序

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

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

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

示例介绍

  • 固件使用 brookesia 组件,展示 APP 风格的各种应用程序,包含设置、图库、天气、陀螺仪 等 APP

固件下载

APP 示例介绍

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

设置 APP

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

  • 调节背光

  • 显示电池 ADC 电压

  • 如果插入TF卡,会显示SD卡容量大小

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


天气 APP

  • 此示例展示在线获取本地天气数据,需要联网,否则无法获取天气信息

  • 当前程序设置为间隔5S 获取一次天气信息


陀螺仪 APP

  • 此示例展示获取陀螺仪数据并显示的功能


图库 APP

  • 此示例展示图片显示功能

  • 图片资源内置在程序中,左右滑动即可切换图片


ESP-IDF

本章节包含以下部分,请按需阅读:

ESP-IDF 入门教程

初次接触 ESP32 ESP-IDF 开发,想要快速上手?我们为您准备了一套通用的 入门教程

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

配置 ESP-IDF 开发环境

请参考 安装 ESP-IDF 开发环境

信息

对于 ESP32-C6-Touch-AMOLED-1.64 开发板,需要使用 ESP-IDF ≥5.5.2 以上版本。

备注

以下内容以 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 环境,无需手动配置。

示例程序

示例程序基础例程说明依赖库
01_ADC_Test获取锂电池的电压值,并显示在屏幕上-
02_I2C_QMI8658打印 IMU 发出来的原始数据-
03_SD_Card加载显示 SD 卡的信息,并进行读写测试-
04_WIFI_AP设置为 AP 模式,可获取接入设备的 MAC 地址-
05_WIFI_STA设置为 STA 模式,可接入 WiFi 获取 IP 地址-
06_LVGL_TestLVGL 例程-
07_brookesia_appbrookesia 图片 APP 例程-

01_ADC_Test

【程序说明】

  • 通过 GPIO 连接的模拟量电压经过 ADC 转换成数字量,然后通过计算得到实际的系统电压,并在屏幕上显示

【硬件连接】

  • 接入 3.7V 锂电池

【代码分析】

  • bsp_display_start():初始化屏幕、触摸以及 LVGL
  • bsp_display_backlight_on():打开背光
  • bat_adc_init():初始化 ADC1,包括创建 ADC 单次触发单元并配置 ADC1 的通道 0。

【运行效果】

  • 程序编译下载完成,接入电池,可以看到电池电压显示在屏幕上如下图所示:


02_I2C_QMI8658

【程序说明】

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

【硬件连接】

  • 接入 3.7V 锂电池电池

【代码分析】

  • bsp_qmi8658_drv_init():初始化 qmi8658
  • qmi8658_is_data_ready():读取是否有数据准备好
  • qmi8658_read_sensor_data():读取陀螺仪数据

【运行效果】

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


03_SD_Card

【程序说明】

  • 通过 SPI 方式驱动 SD 卡,成功挂载 SD 卡之后把 SD 卡信息以及读写文件测试结果打印到终端。

【硬件连接】

  • 板子装上 SD 卡(必须先插入容量小于 64G 的 SD 卡)
  • 使用 USB 线把板子接入电脑

【代码分析】

  • bsp_sdcard_mount():SPI 接口初始化 TF 卡
  • tf_card_test():读写文件测试

【运行效果】

  • 点击串口监控设备,可以看到输出的 SD 卡的信息:


04_WIFI_AP

【程序说明】

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

【硬件连接】

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

【代码分析】

  • 在 softap_example_main.c 文件找到 SSID 和 PASSWORD ,然后手机或其他处于 STA 模式的设备即可使用该 SSID 和 PASSWORD 连接到开发板。

【运行效果】

  • 点击串口监控设备,如果设备连接成功热点之后,会输出该设备的 IP 地址,:


05_WIFI_STA

【程序说明】

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

【硬件连接】

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

【代码分析】

  • 在 station_example_main.c 文件找到 SSID 和 PASSWORD ,然后将其修改为当前环境中可用路由器的 SSID 和 Password 。

【运行效果】

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


06_LVGL_Test

【程序说明】

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

【硬件连接】

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

【代码分析】

  • bsp_display_start():初始化屏幕、触摸以及 LVGL
  • bsp_display_backlight_on():打开背光
  • lv_demo_widgets():加载 LVGL demo 程序

【运行效果】

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


07_brookesia_app

【程序说明】

  • 通过移植 LVGL 以及乐鑫 brookesia 组件实现类似 APP 的功能,此示例只加载图片 APP

【硬件连接】

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

【代码分析】

  • 为 brookesia 配置 LVGL 锁

    LvLock::registerCallbacks([](int timeout_ms) {
    esp_err_t ret = bsp_display_lock(timeout_ms);
    ESP_UTILS_CHECK_FALSE_RETURN(ret == ESP_OK, false, "Lock failed (timeout_ms: %d)", timeout_ms);

    return true;
    }, []() {
    bsp_display_unlock();
    return true;
    });
  • 安装 APP

    auto app4 = esp_brookesia::apps::Photos::requestInstance();
    ESP_UTILS_CHECK_FALSE_EXIT(phone->installApp(app4),"start Drawpanel failed");

【运行效果】

  • 程序烧录完成后,点击相册图标,左右滑动即可切换图片,设备的运行效果如下:




相关资料

1. 硬件资料

开发板设计文件

2. 技术手册

3. 示例程序

技术支持

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

手机:13434470212

邮箱:services04@spotpear.cn

QQ:202004841