跳到主要内容

03 · 微雪板卡 Hello World 验证

目标板:Waveshare ESP32-S3-Touch-LCD-1.28。本页取代原来的 DevKitC 操作步骤。

验证状态

2026-09-18 已在本机完成该板目标的固件编译,生成 ELF 与 BIN。烧录、串口输出和实板行为待你验证;没有自动向开发板写入固件。

1. 关机后重新进入环境

source ~/Projects/zephyr-workspace/.venv-py312/bin/activate
cd ~/Projects/zephyr-workspace/zephyr
python --version
west --version
git describe --tags --always

预期分别为 Python 3.12.14、west 1.5.0、v4.2.0。每个新终端都需要激活一次;源码、依赖与 SDK 不需要重新安装。

2. 编译本板固件

west build -p always -b esp32s3_touch_lcd_1_28/esp32s3/procpu \
samples/hello_world -d build/waveshare-hello

-p always 清理的是指定构建目录的旧产物。成功后生成:

build/waveshare-hello/zephyr/zephyr.elf
build/waveshare-hello/zephyr/zephyr.bin

本板默认使用 Simple boot,本次不启用 sysbuild / MCUboot。已编译过且未修改代码时,直接进行下一步即可。

3. 确认 USB 串口

用支持数据传输的 Type-C 线连接板卡。此板接口通过 CH343P 连接 UART0,不需要为这个 Hello World 额外配置 USB CDC。

ls -l /dev/serial/by-id/
python -m serial.tools.list_ports -v

根据插拔前后变化确认本板对应设备,记录稳定的 by-id 路径。不要照抄他人的 /dev/ttyUSB0;没有 by-id 时,以串口枚举输出为准。

本机已确认的串口权限问题

2026-09-18 在宿主机确认板卡枚举为 /dev/ttyACM0,设备属组为 dialout、权限为 0660;当前 fedora 会话不在 dialout 组。实际烧录错误为 Permission denied,不是固件编译失败。

在自己的终端执行一次:

sudo usermod -aG dialout fedora
newgrp dialout

第一条修改组成员,第二条进入使用新组的子 shell;执行后继续在这个子 shell 中操作。也可退出桌面登录后重新登录,让整个会话生效。仅开一个继承旧桌面会话的新终端不一定生效。

id -nG
source ~/Projects/zephyr-workspace/.venv-py312/bin/activate
cd ~/Projects/zephyr-workspace/zephyr

确认 id -nG 包含 dialout 后再烧录。上面的用户名只适用于本机 fedora;其他电脑按实际用户名和串口属组调整。不需要 sudo westchmod 777

4. 烧录

烧录将替换板上当前演示固件。确认只连接目标实验板后,从 Zephyr 源码目录执行:

west flash -d build/waveshare-hello

多串口或自动识别失败时先查看 runner 帮助:

west flash -d build/waveshare-hello -H

本版本 ESP32 runner 使用 --esp-device 指定串口。下面一行需要把占位路径改为上一步查到的实际设备:

west flash -d build/waveshare-hello --esp-device /dev/serial/by-id/替换为实际设备

若无法自动进入下载模式,按住 BOOT、按一下 RESET,再松开 BOOT,然后重试。Permission denied 时看串口排错,不要用 sudo 运行整套 west。

5. 查看串口并复位

关闭其他占用端口的软件,进入这个构建目录:

cd ~/Projects/zephyr-workspace/zephyr/build/waveshare-hello
west espressif monitor -b 115200

如需指定设备:

west espressif monitor -p /dev/serial/by-id/替换为实际设备 -b 115200

监视器就绪后按 RESET,观察启动输出。退出通常使用 Ctrl+],具体以监视器启动提示为准。此扩展的 -d 是地址解码开关,不是构建目录参数。

预期输出包含(示意,版本后缀可变化):

*** Booting Zephyr OS ... ***
Hello World! esp32s3_touch_lcd_1_28/esp32s3/procpu

本例只向串口打印一次,不会在圆屏上显示 Hello World。没有输出先检查串口、波特率与复位时机,不要把黑屏当作固件失败。

6. 记录结果

  • 串口确认来自该板 CH343P。
  • 编译和烧录命令成功。
  • RESET 后收到 Hello World。
  • 实验手记保存实际日志。

下一步:背光亮灭与分级调光

官方来源

Zephyr v4.2.0 板卡说明 · 微雪接口说明