
| 模块 | 器件 / 功能 | 接口 | 地址 / 参数 | GPIO / 信号 |
|---|---|---|---|---|
| 墨水屏 | 1.54G | SPI | 200 x 200 | EPD_PWR=GPIO6,EPD_BUSY=GPIO8,EPD_DC=GPIO10,EPD_CS=GPIO11,EPD_SCLK=GPIO12,EPD_SDI=GPIO13,EPD_RST=GPIO9 |
| RTC | PCF85063ATL | I2C | 常用 7-bit 地址 0x51,32.768 kHz 晶振 | SCL=GPIO48,SDA=GPIO47,INT=GPIO5 |
| 电池采样 | VBAT 分压到 ADC | ADC | R21 上拉 200K,R38 下拉 200K;VBAT=VADC×2 | GPIO4 / BAT_ADC |
| 电源控制 | BAT_KEY / BAT_Control | GPIO | PWR 电源功能电路 | BAT_KEY=GPIO18,BAT_Control=GPIO17 |
| 音频采集/播放 | ES8311 | I2S | 常用 7-bit 地址:0x18 | I2S_MCLK=GPIO14,I2S_SCLK=GPIO15,I2S_ASDOUT=GPIO16,I2S_LRCK=GPIO38,I2S_DSDIN=GPIO45,PA_EN=GPIO42,PA_CTRL=GPIO46 |
| 温湿度传感器 | SHTC3 | I2C | 常用 7-bit 地址:0x70 | SCL=GPIO48,SDA=GPIO47 |
| SD Card | TF 卡座 | SDIO | SD_CLK=GPIO39,SD_MOSI=GPIO41,SD_MISO=GPIO40 | |
| USB Type-C | ESP32-S3 原生 USB | USB | 下载、日志 | USB_N=GPIO19,USB_P=GPIO20 |
| UART0 | 默认串口 | UART | 调试 / 外部引出接口 | U0TXD=GPIO43,U0RXD=GPIO44 |
| 充电管理 | ETA6098 | 电源 | 单节锂电池充放电 | GH1.25 电池接口 |
| 3.3 V DC-DC | MP1605 | 电源 | 系统 3.3 V | VCC3V3 |
| 显示面板 | 电子墨水屏 | 显示尺寸 | 1.54 英寸 |
|---|---|---|---|
| 显示分辨率 | 200 × 200 | 灰度等级 | 2 |
| 通信接口 | SPI | 全局刷新 | 20s |
| 显示颜色 | 红、黄、黑、白 | 快速刷新 | 15s |
| 可视角度 | >170° | 显示方式 | 反射式 |
在使用 ESP32-S3-ePaper-1.54G 板上预留的 GPIO 端子时需注意接线颜色和对应功能,避免接线惯性导致烧坏开发板。

| 类型 | 信号 |
|---|---|
| 电源 | 5V / 3V3 / GND |
| I2C | SCL(GPIO48) / SDA(GPIO47) |
| UART | TX(GPIO43) / RX(GPIO44) |
| USB | USB_N(GPIO19)/ USB_P(GPIO20) |
| GPIO | GPIO1 / GPIO2 / GPIO3 |
下表列出板上电路已占用的 GPIO 及已引出到扩展口的引脚。
| GPIO | 信号名 | 连接到 | 备注 |
|---|---|---|---|
| GPIO0 | BOOT / Key1 | BOOT 按键 | Strapping pin;按键接入下载模式 |
| GPIO1 | GPIO1 | 预留排母 | 扩展口 GPIO1 |
| GPIO2 | GPIO2 | 预留排母 | 扩展口 GPIO2 |
| GPIO3 | GPIO3 | 预留排母 | 扩展口 GPIO3 |
| GPIO4 | BAT_ADC | 电池电压分压采样 | R21 上拉 200K,R38 下拉 200K;VBAT=VADC×2 |
| GPIO5 | RTC_INT | PCF85063 RTC 中断 | - |
| GPIO6 | EPD3V3_EN | 墨水屏电源开关 | 墨水屏 3.3V 供电使能 |
| GPIO7 | EPD_TP_RST | 墨水屏预留触摸 | 触摸屏复位引脚(预留) |
| GPIO8 | EPD_BUSY | 墨水屏忙状态 | - |
| GPIO9 | EPD_RST | 墨水屏复位 | - |
| GPIO10 | EPD_D/C | 墨水屏数据 / 命令 | - |
| GPIO11 | EPD_CS | 墨水屏片选 | SPI 从机选择 |
| GPIO12 | EPD_SCLK | 墨水屏 SPI 时钟 | SPI 通信时钟 |
| GPIO13 | EPD_SDI | 墨水屏 SPI 数据 | SPI 主机发送数据 |
| GPIO14 | I2S_MCLK | ES8311 音频主时钟 | - |
| GPIO15 | I2S_SCLK | ES8311 音频位时钟 | - |
| GPIO16 | I2S_ASDOUT | ES8311 音频数据输出 | I2S 音频输出 |
| GPIO17 | BAT_Control | 电池电源控制 | 电池充放电管理 |
| GPIO18 | BAT_KEY | 电池电源使能开关 | - |
| GPIO19 | USB_N | USB Type-C D- | ESP32-S3 原生 USB |
| GPIO20 | USB_P | USB Type-C D+ | ESP32-S3 原生 USB |
| GPIO21 | EPD_TP_INT | 墨水屏触摸中断 | 触摸屏中断(预留) |
| GPIO38 | I2S_LRCK | ES8311 音频帧时钟 | - |
| GPIO39 | SD_CLK | SD 卡 SDIO 时钟 | - |
| GPIO40 | SD_MISO | SD 卡 SDIO 数据 0 | - |
| GPIO41 | SD_MOSI | SD 卡 SDIO 命令 | - |
| GPIO42 | PA_EN | ES8311 电源供电开关 | - |
| GPIO43 | U0TXD | 预留 UART TX 排母 | 扩展口 TX |
| GPIO44 | U0RXD | 预留 UART RX 排母 | 扩展口 RX |
| GPIO45 | I2S_DSDIN | ES8311 音频数据输入 | I2S 音频采集 |
| GPIO46 | PA_CTRL | 音频功放使能 | - |
| GPIO47 | SDA | I2C 数据总线 | RTC/SHTC3/ES8311/EPD_TP 共用 |
| GPIO48 | SCL | I2C 时钟总线 | RTC/SHTC3/ES8311/EPD_TP 共用 |
0x18、0x70、0x51 地址冲突。GPIO19/GPIO20 已连接 USB Type-C,不建议当普通 GPIO 使用。GPIO0 是 BOOT 引脚,EN/CHIP_PU 是复位信号,不建议作为普通用户输入。GPIO33 到 GPIO37 用于连接内部集成的 Octal SPI PSRAM,不可用于其他功能。
本章节包含以下部分,请按需阅读:
初次接触 Arduino ESP32 开发,想要快速上手?我们为您准备了一套通用的 入门教程。
请注意:该教程使用 ESP32-S3-Zero 作为教学示例,所有硬件代码均基于其引脚布局。在动手实践前,建议您对照手中的开发板引脚图,确认引脚配置无误。
对于 ESP32-S3-ePaper-1.54G 开发板,Arduino IDE 需要安装 arduino-esp32 v3.2.0 以上版本。
请参考 安装和配置 Arduino IDE 教程 下载安装 Arduino IDE 并添加 ESP32 支持。
| 库或文件名称 | 说明 | 版本 | 安装方式 |
|---|---|---|---|
| SensorLib | 传感器控制库 | v0.3.1 | "离线/在线"安装 |

Arduino 示例程序位于 示例程序包 的 Arduino/examples 目录中。
| 示例程序 | 基础例程说明 | 依赖库 |
|---|---|---|
| 01_ADC_Test | 获取锂电池的电压值 | - |
| 02_I2C_PCF85063 | 打印 RTC 芯片的实时时间 | SensorLib |
| 03_I2C_STHC3 | 获取温湿度传感器的数据 | - |
| 04_SD_Card | 加载显示 SD 卡的信息 | - |
| 05_WIFI_AP | 设置为 AP 模式,可获取接入设备的 IP 地址 | - |
| 06_WIFI_STA | 设置为 STA 模式,可接入 WiFi 获取 IP 地址 | - |
| 07_Audio_out | 读取音频数据,播放音频 | - |
| 08_E_paper_test | 墨水屏屏幕刷新例程 | - |
【程序说明】
【硬件连接】
【代码分析】
adc_bsp_init(void):初始化 ADC1,包括创建 ADC 单次触发单元并配置 ADC1 的通道 3。adc_get_value(float *value,int *data):读取 ADC1 通道 3 的值,并根据参考电压和分辨率计算出对应的电压值存储在传入的指针指向的位置,如果读取失败则存储 0。adc_example(void* parameter):初始化 ADC1 后,创建一个 ADC 任务,该任务每隔 1 秒读取一次 ADC 的值,通过读取的 ADC 原始值计算出系统的电压。【运行效果】
程序编译下载完成,打开串口监控可以看到打印输出的 ADC 的值和电压,如下图所示:

【程序说明】
【硬件连接】
【代码分析】
void i2c_rtc_loop_task(void *arg):创建一个 RTC 任务来实现 RTC 功能,每隔 1 秒读取一次 RTC 芯片的时钟,然后输出到终端。【运行效果】
程序编译下载完成,打开串口监控可以看到打印输出的 RTC 时间,如下图所示:

【程序说明】
【硬件连接】
【代码分析】
void i2c_SHTC3_loop_task(void *arg):创建一个 SHTC3 传感器任务,定时获取温湿度。【运行效果】
打开串口监控,可以看到打印输出的温湿度数据,如下图所示:

【程序说明】
【硬件连接】
【代码分析】
sdcard_init(void):使用 1 线 SDMMC 方式初始化 SD 卡。sdcard_loop_task(void *arg):测试 SD 卡读写功能的任务,需要取消#define sdcard_write_Test宏定义的注释。//#define sdcard_write_Test
【运行效果】
点击串口监控设备,可以看到输出的 SD 卡的信息,如下图所示:

【程序说明】
【硬件连接】
【代码分析】
在 05_WIFI_AP.ino 文件找到 ssid 和 password,然后手机或其他处于 STA 模式的设备即可使用该 ssid 和 password 连接到开发板。
const char *ssid = "ESP32_AP";
const char *password = "12345678";
【运行效果】
烧录完程序,打开串口终端,如果设备连接热点成功之后,会输出该设备的 MAC 地址,如图:

【程序说明】
【硬件连接】
【代码分析】
在 06_WIFI_STA.ino 文件找到 ssid 和 password,然后将其修改为当前环境中可用路由器的 SSID 和 Password。
const char *ssid = "you_ssid";
const char *password = "you_password";
【运行效果】
烧录完程序,打开串口终端,如果设备连接成功热点之后,会输出所获取的 IP 地址,如图:

【程序说明】
【硬件连接】
【运行效果】
【程序说明】
【硬件连接】
【运行效果】



本章节包含以下部分,请按需阅读:
初次接触 ESP32 ESP-IDF 开发,想要快速上手?我们为您准备了一套通用的 入门教程。
请注意:该教程使用 ESP32-S3-Zero 作为教学示例,所有硬件代码均基于其引脚布局。在动手实践前,建议您对照手中的开发板引脚图,确认引脚配置无误。
对于 ESP32-S3-ePaper-1.54G 开发板,需要使用 ESP-IDF V5.5.1 以上版本。
以下内容以 Windows 系统为例,使用 VS Code + ESP-IDF 扩展 的方式进行开发。Mac/Linux 用户请参考 官方说明。
此部分图示以安装 ESP-IDF V5.2.2 为例示范,安装时请选用与您开发板示例匹配的 ESP-IDF 版本。
前往 ESP-IDF Installation Manager 下载 ESP-IDF 安装管理器。这是乐鑫最新推出的跨平台安装工具,下文将演示如何使用其离线安装功能。
在页面中点击 Offline Installer 标签,然后在筛选栏中选择 Windows 操作系统和你需要的 ESP-IDF 版本(图示仅为参考,请以实际为准)。

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

请耐心等待两个文件下载完成。
下载完成后,双击运行 ESP-IDF 安装器(eim-gui-windows-x64.exe)。
启动后,可在右上角将界面语言切换为中文。

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

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

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

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

下载并安装 Visual Studio Code。
安装时建议勾选 通过 Code 打开操作添加到 Windows 资源管理器文件上下文菜单,以便快速打开项目文件夹。
在 VS Code 中,点击侧边活动栏中的 扩展图标(或使用快捷键 Ctrl + Shift + X)打开 扩展 视图。
在搜索框中输入 ESP-IDF,找到 ESP-IDF 扩展并点击安装。

当 ESP-IDF 扩展版本 ≥ 2.0 时,扩展会自动检测并识别上述步骤中安装的 ESP-IDF 环境,无需手动配置。
ESP-IDF 示例程序位于 示例程序包 的 ESP-IDF 目录中。
| 示例程序 | 基础例程说明 | 依赖库 |
|---|---|---|
| 01_ADC_Test | 获取锂电池的电压值 | - |
| 02_I2C_PCF85063 | 打印 RTC 芯片的实时时间 | SensorLib |
| 03_I2C_STHC3 | 获取温湿度传感器的数据 | - |
| 04_SD_Card | 加载显示 SD 卡的信息 | - |
| 05_WIFI_AP | 设置为 AP 模式,可获取接入设备的 IP 地址 | - |
| 06_WIFI_STA | 设置为 STA 模式,可接入 WiFi 获取 IP 地址 | - |
| 07_Audio_Test | 获取麦克风的数据,通过扬声器播放 | - |
| 08_BATT_PWR_Test | 使用锂电池供电,PWR 按键控制系统的电源 | - |
| 09_E_paper_test | 墨水屏屏幕刷新例程 | - |
【程序说明】
【硬件连接】
【代码分析】
Adc_PortInit(void):初始化 ADC1,包括创建 ADC 单次触发单元并配置 ADC1 的通道 3。float Adc_GetBatteryVoltage(int *data):读取 ADC1 通道 3 的值,返回实际的电压值。uint8_t Adc_GetBatteryLevel(void):返回电池的百分比。void Adc_LoopTask(void *arg):创建一个 ADC 任务,该任务每隔 1 秒读取一次 ADC 的值并打印到串口。【运行效果】
程序编译下载完成,打开串口监控可以看到打印输出的 ADC 的值和电压,如下图所示:

【程序说明】
【硬件连接】
【代码分析】
void i2c_rtc_loop_task(void *arg):创建一个 RTC 任务来实现 RTC 功能,每隔 1 秒读取一次 RTC 芯片的时钟,然后输出到终端。【运行效果】
程序编译下载完成,打开串口监控可以看到打印输出的 RTC 时间,如下图所示:

【程序说明】
【硬件连接】
【代码分析】
void i2c_SHTC3_loop_task(void *arg):创建一个 SHTC3 传感器任务,定时获取温湿度。【运行效果】
打开串口监控,可以看到打印输出的温湿度数据,如下图所示:

【程序说明】
【硬件连接】
【代码分析】
sdcard_init(void):使用 1 线 SDMMC 方式初始化 SD 卡。sdcard_loop_task(void *arg):测试 SD 卡读写功能的任务,需要取消 #define sdcard_write_Test 宏定义的注释。【运行效果】
点击串口监控设备,可以看到输出的 SD 卡的信息,practical_size 是 SD 卡的实际容量,如下图所示:

【程序说明】
【硬件连接】
【代码分析】
softap_example_main.c 文件找到 SSID 和 PASSWORD,然后手机或其他处于 STA 模式的设备即可使用该 SSID 和 PASSWORD 连接到开发板。#define EXAMPLE_ESP_WIFI_SSID "waveshare_esp32"
#define EXAMPLE_ESP_WIFI_PASSWORD "wav123456"
【运行效果】
烧录完程序,打开串口终端,如果设备连接成功热点之后,会输出该设备的 MAC 地址和 IP 地址,如图:

【程序说明】
【硬件连接】
【代码分析】
esp_wifi_bsp.c 文件找到 ssid 和 password ,然后将其修改为当前环境中可用路由器的 SSID 和 Password 。wifi_config_t wifi_config = {
.sta = {
.ssid = "PDCN",
.password = "1234567890",
},
};
【运行效果】
烧录完程序,打开串口终端,如果设备连接成功热点之后,会输出所获取的 IP 地址,如图:

【程序说明】
【硬件连接】
【代码分析】
i2c_master_Init():初始化 I2C 总线 。user_ui_init():初始化全局 ui 。user_button_init():初始化 audio 接口。【运行效果】
程序烧录完成后,屏幕无显示
【程序说明】
【硬件连接】
【代码分析】
user_button_init():初始化按键以及各类触发事件。example_button_pwr_task(void* parmeter):等待按键事件触发的任务。【运行效果】
程序烧录完成后,断开 USB 供电,接入锂电池,通过长按 PWR 按键进行开机,屏幕无显示:
【程序说明】
【硬件连接】
【运行效果】
![]() ![]() ![]() |
|---|
【程序说明】
BOOT 按键进行模式选择和切换。【硬件连接】
【程序功能】 程序包含三种工作模式:
| 模式 | 名称 | 功能 |
|---|---|---|
| 模式 1 | 基础图片显示模式 | 单击按键切换并显示 SD 卡中的图片 |
| 模式 2 | 局域网图片服务器模式 | 手机或电脑通过网页上传图片到墨水屏显示 |
| 模式 3 | AI 对话模式 | 接入小智 AI,可语音对话 |
设备默认进入 模式 1:基础模式。
如果未检测到 SD 卡,设备会根据当前模式刷新内置图片或显示提示信息,部分依赖 SD 卡的功能不可用。
【指示灯状态】
【模式切换】
BOOT 按键进入模式选择,设备会语音播报“模式选择”BOOT 按键依次切换模式,设备会播报当前选择的模式BOOT 按键确认并进入当前选择的模式bmp 目录200x200 分辨率,四色 BMP 格式图片BOOT 按键显示或切换 bmp 目录下的图片
bmp 目录下没有可读取图片,设备会刷新内置图片06_user_Foundation_img目录下的config.txt文件设置,具体代码段和文件位置如下:

esp_network 密码:1234567890,连接成功之后,进入 图片选择界面,如图:
BOOT / PWR 按键或 30 秒定时器
开发板设计文件
ESP32-S3 芯片官方手册
数据手册
周一-周五(9:30-6:30)周六(9:30-5:30)
手机:13434470212
邮箱:services04@spotpear.cn
QQ:202004841
