跳到主要内容

我的板卡:微雪 ESP32-S3-Touch-LCD-1.28

当前已确认使用 Touch 板

用户已确认现已换成 ESP32-S3-Touch-LCD-1.28,继续使用本页 Touch 目标。之前提供的无 Touch 板资料不适用于背光和显示引脚。更换物理板卡后,旧板的烧录成功记录不代表新板已写入程序。

本教程的主力板卡是你已有的 Waveshare ESP32-S3-Touch-LCD-1.28(带 Touch 的型号)。Zephyr v4.2.0 已包含该板专用配置,无需先自行移植。

固定编译目标

esp32s3_touch_lcd_1_28/esp32s3/procpu

板卡名称为 esp32s3_touch_lcd_1_28,SoC 为 esp32s3,主核为 procpu。不要再使用旧教程的经典 ESP32 目标,也不要混用外观相似的无 Touch 型号。

已核对的硬件连接

功能本板配置
主控 / 存储ESP32-S3,16 MB Flash,2 MB PSRAM
USB 接口Type-C,通过 CH343P 转 UART0
默认串口GPIO43 TX / GPIO44 RX,115200 波特率
屏幕GC9A01A,240×240,SPI
背光GPIO2;Zephyr 别名 pwm-lcd0,LEDC 通道 0
触摸CST816S;I²C SDA GPIO6 / SCL GPIO7,INT GPIO5,RST GPIO13
BOOTGPIO0;与 RESET 配合进入下载模式

这些连接以微雪硬件资料及 v4.2.0 的板卡 DTS / pinctrl 为依据。板上有传感器不代表每项功能已在本教程验证。

为什么改成背光实验

v4.2.0 这块板的 DTS 没有普通 GPIO LED 的 led0 别名,但有 pwm-lcd0。因此先跑 Hello World,再控制屏幕背光;不要直接构建普通 samples/basic/blinky,也不需要为了点灯先接外部 LED。

背光是照明,屏幕图像需要另一套显示初始化。Hello World 没有显示逻辑,屏幕没有新画面是正常的,应以串口输出判断。

板卡文件和应用工程的关系

Zephyr 的板卡定义位于工作区的 zephyr/boards/,本项目选择的是:

~/Projects/zephyr-workspace/zephyr/boards/waveshare/esp32s3_touch_lcd_1_28/

这里的 DTS 和 pinctrl 文件描述 GPIO、LEDC 背光、LCD、触摸、UART 和 Flash 等硬件连接。构建时通过 -b 选择板卡和处理器核:

-b esp32s3_touch_lcd_1_28/esp32s3/procpu

应用工程位于 applications/,例如:

~/Projects/zephyr-workspace/applications/waveshare-backlight/
├── CMakeLists.txt
├── prj.conf
├── app.overlay
└── src/main.c

其中 main.c 是程序逻辑,prj.conf 开启功能,app.overlay 只为当前应用覆盖设备树。本项目的背光 overlay 将 PWM 输出限制到 GPIO2,并设置实验所需的 PWM 周期;它不会替换整块板卡定义。

完整构建命令把两者合并到独立的构建目录:

cd ~/Projects/zephyr-workspace/zephyr
west build -p always -b esp32s3_touch_lcd_1_28/esp32s3/procpu \
../applications/waveshare-backlight -d build/waveshare-backlight

最终生成的 build/waveshare-backlight/zephyr/zephyr.bin 才是交给 west flash 烧录的固件。修改板卡 DTS、驱动、应用源码或配置后,必须重新执行 west buildwest flash 只烧录现有构建结果。

本机状态

2026-09-18:已用 Python 3.12.14、SDK 0.17.2 和 Zephyr v4.2.0 为该目标成功编译、烧录,并从串口观察到 Hello World 启动输出。

下一步:Hello World:重新进入、编译与板卡验证

来源