操作 Steamania 手持编程器 —— 板上 7 键
Steamania 手持编程器(ELAB-N1)有两个人机交互通道:
- 主屏幕——自成体系的触摸 UI,经 UART3 与 MCU 串口通信,用手直接点按操作。它的触摸操作不在本手册范围内。
- OLED 屏 + 7 个按键——本手册的主角。仅用这 7 个键就能浏览、编写、修改、运行和单步调试程序,管理存档并配置网络。
1. 七个按键
| 按键 | 程序可见端口 |
|---|---|
Function | Port0 bit 6 |
Up | Port0 bit 0 |
Down | Port0 bit 1 |
Left | Port0 bit 2 |
Right | Port0 bit 3 |
Enter | Port0 bit 4 |
Back | Port0 bit 5 |
这 7 个键同时也是程序输入的控制按键:用户程序把它们当作 Port0 的 bit0~6 读取(例如用 TZ 跳转),同一个键既是操作者的按键,也是程序的输入。
2. 全局按键约定(任意页面 · 浏览态)
| 操作 | 效果 |
|---|---|
Left + Right 同按 | 翻页 —— Right 后翻、Left 前翻,循环 |
| 翻到 OFF 页 | 熄屏(省电) |
按住 Function + 按 Enter | 恢复显示 |
翻页在编辑程序行、编辑文件名、运行控制模式下被屏蔽——这些状态下按键另有含义。
3. 页面总览(OLED 屏)
Left+Right 沿此环形列表翻页;页号即显示寄存器 0x81 的值。每页的具体操作见 §4 逐页指南。
| 页号 | 名称 | 功能 |
|---|---|---|
0x00 | OFF | 熄屏 |
0x01 | 调试状态 | 延时 / AD / PWM / 开关寄存器 / 时基(只读) |
0x02 | (空页) | — |
0x03 | (空页) | — |
0x04 | 收发监视 | RX/TX 各 16 字节 HEX + 帧计数,帧头反色,Enter 冻结 |
0x05 | 程序页 | 浏览 / 编辑 / 运行程序 —— 主工作区(§5~§6) |
0x06 | 存取页 | 存档:保存 / 载入 / 重命名 |
0x07 | 外设开关 | 8 个外设 ON/OFF + GPIO 方向编辑 |
0x08 | 模拟量输入 | ADS1115 全 16 通道(只读) |
0x09 | 蓝牙控制台 | ROLE / NETID / MADDR 配置 |
0x0A | 范例浏览器 | 范例程序浏览与载入 |
0x0B | 蓝牙波特率 | 波特率扫描与设置 |
0x0C | STARNET 配置 | HELLO / 受控开关 / 心跳周期 |
0x0D | 邻居表 | 在线设备与最近上报值 |
0x0E | 链路监视 | 最近 5 帧倒序 |
0x0F | 链路统计 | 收帧计数 / 本机地址 / 角色 |
0x10 | ENV 配置 | 保留 |
0x15 | 时钟设置 | 时间调整 |
0x16 | 自检页 | 保留 |
0x20~0x2F | 内部寄存器 | 16 页只读查看,覆盖全部 256 个 |
0x30~0x31 | 文件名页 | 存档文件名一览(只读) |
4. 逐页操作指南
Page 00 —— 熄屏
不显示内容(省电)。按住 Function + 按 Enter 恢复显示。
Page 01 —— 调试状态
只读调试页,无按键操作。显示内容:
| 行 | 内容 |
|---|---|
| Delay set | 当前系统延时设定(ms) |
| 第 1 行 4 格 | AD 通道 0~3 电压值 |
| 第 2 行 4 格 | PWM 通道 1~4 占空比 |
XXXX/XXXX | 外设开关寄存器 HEX / 外设就绪状态 |
| 末行 | 超时标志 / 系统时基当前值 / 目标值 |
Page 04 —— 收发监视
收发合页:上半区 RX(最近收到的 16 字节)、下半区 TX(最近发出的 16 字节),各按 2 行 × 8 列显示 HEX。顶行同时显示收/发帧计数 R:nnnnnn T:nnnnnn。
帧头反色高亮——识别到项目三种帧头时,对应字节反白显示:
| 帧头 | 含义 |
|---|---|
F1 DD | 组网链路层帧头 |
7E | 精简帧头 |
AA ? 0A | 透传帧头 |
没被高亮的字节就是没通过校验、被丢弃的垃圾包——正好用来讲解"什么样的包会被收下,什么样的会被扔掉"。
| 按键 | 操作 |
|---|---|
Enter | 冻结 / 解冻:把 RX、TX 两组各 16 字节同时定格为快照(顶行整条反白),再按恢复实时。冻结期间新帧不干扰显示 |
Page 05 —— 程序页(主工作区)
浏览、编辑、运行、单步调试程序——操作最多的页面,见 §5(浏览与编辑)和 §6(运行控制与单步调试)。
Page 06 —— 存取页(存档管理)
16 个存档槽位的保存 / 载入 / 重命名。
| 按键 | 操作 |
|---|---|
Up / Down | 选择槽位(> 标记) |
Enter | 载入该槽位程序 |
按住 Function + Enter | 保存当前程序到该槽位(不改名) |
Function 单按 | 重命名该槽位 → 进入文件名编辑器 |
Back | 回到上一页 |
Left / Right 单按 | 无功能(Left+Right 同按翻页仍有效) |
文件名编辑器(Function 单按进入):
| 按键 | 操作 |
|---|---|
Up / Down | 当前字符 ±1(可打印 ASCII 循环;按住 ≥0.5s 自动连变) |
Left / Right | 移动光标(共 16 字符) |
Enter | 确认改名并保存到 Flash |
Back | 放弃,回到槽位列表 |
Page 07 —— 外设开关页
9 个条目分两屏显示:ADS1115、BME280、DS1307、TCS34725、PCA9685、WS2812B、HuskyLens、MIDI、GPIO 方向。
| 按键 | 操作 |
|---|---|
Up / Down | 条目间移动(循环) |
Left / Right | 前一屏 / 后一屏(每屏 5 行) |
Enter | 切换选中条目 ON/OFF(开启时自动探测一次;选中 GPIO 方向则进入子页) |
Function | 一键重新探测全部已开启外设(屏显 RETRY) |
Back | 无操作 |
GPIO 方向子页(在 GPIO 方向条目上按 Enter 进入):Port1 的 8 位方向排成一排。
| 按键 | 操作 |
|---|---|
Up | 当前位设为输入(1) |
Down | 当前位设为输出(0) |
Left / Right / Enter | 左移 / 右移光标(循环) |
Back | 返回列表页,方向自动生效 |
Function | 立即强制刷新 GPIO 方向 |
ENV 模式下,Function 键在本页兼任台账泵开关(教师演示轮询传感器代表)。
Page 08 —— 模拟量输入
只读。4×4 网格显示 ADS1115 全部 16 个通道读数,无按键操作。
Page 09 —— 蓝牙控制台
配置蓝牙模块的 ROLE / NETID / MADDR。屏显提示:浏览态 FN:EDIT U/D:ROW,调整态 L/R:ADJ ENT:SET。
| 按键 | 操作 |
|---|---|
Up / Down | 选行(ROLE / NETID / MADDR) |
Function | 进入 / 退出调整模式 |
Left / Right | 调整模式下数值 ±1 |
Enter | 调整模式下写入模块(SET OK / SET FAIL 提示 1.5s) |
Page 0A —— 范例浏览器
| 按键 | 操作 |
|---|---|
Up / Down | 浏览范例 |
Enter | 载入到程序区 |
Page 0B —— 蓝牙波特率
进入页面自动扫描当前波特率(FOUND / NO RESP)。
| 按键 | 操作 |
|---|---|
Function | 进入 / 退出编辑 |
Up / Down | 选择波特率 |
Enter ×2 | 连按两次确认写入 |
Page 0C —— STARNET 配置
4 行:HELLO、CTRL(受控开关)、HB(心跳周期)、最后上报状态。
| 按键 | 操作 |
|---|---|
Up / Down | 选行 |
Function | 进入 / 退出调整模式 |
Left / Right | 调整模式下:CTRL 行 = ON/OFF 翻转;HB 行 = OFF→1S→5S→10S 循环 |
Enter | 调整模式下在 HELLO 行 = 广播 HELLO(发出 → SENT,2s 未发出 → FAIL) |
PASS 透传模式下本页仍可打开,但 HELLO 不发帧、约 2s 后显示 FAIL——这是正常现象,不是故障。
Page 0D —— 邻居表
显示网络在线设备(B=广播 / P=点对点)及最近上报值。Up / Down 滚动查看。
Page 0E —— 链路监视
只读。最近 5 帧倒序(类型 / 来源 / 首字节)。
Page 0F —— 链路统计
只读。收帧计数、本机地址、角色等。
Page 10 —— ENV 配置
保留页面。
Page 15 —— 时钟设置
| 按键 | 操作 |
|---|---|
Enter | 唤起调整(光标=年);再按 = 提交退出 |
Left / Right | 切字段:年→月→日→时→分→秒 |
Up / Down | 当前字段 ±1 |
Back | 放弃修改 |
切出本页自动放弃未提交的修改。
Page 16 —— 自检页
自检画面,无按键操作。
Page 20 ~ 2F —— 内部寄存器(16 页)
只读查看内部寄存器,每页 16 个:Page 20 = 0x000x0F … Page 2F = 0xF00xFF。Function 单按进入运行控制模式(见 §6)。
Page 30 ~ 31 —— 文件名页
只读显示全部存档槽位的文件名。改名走 Page 06 的重命名流程。
5. 程序页深入:浏览与编辑
OLED 屏每次显示 4 行程序,顶栏显示当前文件名和 [pc]<。
浏览
| 按键 | 效果 |
|---|---|
Up / Down | 滚动 ±4 行 |
按住 Back + Up/Down | 滚动 ±128 行 |
Left / Right | 滚动 ±16 行 |
Function+Up / Function+Down | 跳到第 000 行 / 最后一行 |
Function+Left / Function+Right | 滚动 ±64 行 |
按住 Back ≥ 400ms | 视图跟随程序计数器(PC) |
编辑 —— 在任意行按 Enter,分三个阶段:
- 选行 ——
Up/Down±1 行;按住Enter+Up/Down= ±32;按住Back+Up/Down= ±128。Enter或Right确认该行;Back/Function放弃回到浏览。 - 选字段 —— 一行程序 = 指令 + P00 + P01 + P10 + P11 共 5 字节。
Left/Right在字段间移动;按住Back+Left/Right跳到首/末字段。 - 改值 ——
Up/Down±1(0↔255 循环);按住Enter×16 加速。Function切换字节 / 半字节粒度(半字节 = 一位十六进制)。Left+Right同按将当前字段清零。Enter写回该行;Back放弃。
半字节模式适合照指令集敲操作码:inst P-0 P-1 的每一位十六进制都是一个独立光标位置,见指令集。
6. 运行控制与单步调试
在程序页(或任意寄存器页 0x20~0x2C)单按 Function 进入运行控制模式——顶栏图标反显提示。此时按键变成调试器:
| 按键 | 操作 |
|---|---|
Right | 运行 / 暂停切换(STOP→RUN;RUN→步进模式下暂停) |
Left | 停止并把 PC 归零到第 000 行 |
Enter | 执行一行(单步,仅暂停时有效) |
Function | 退出运行控制模式 |
Up/Down/Back 在此模式下无作用。这就是课件所说的单步调试——用 Right 暂停,再用 Enter 一行一行走,观察寄存器和输出变化。
空口同样可以用控制帧 opcode 0x07 RUN_CTRL(run / stop / step / n / jump / b)实现这套调试,见 STARNET 相关文档。
7. 开机组合键
开机时按住以下按键:
| 开机按住 | 进入 |
|---|---|
| (无) | 正常启动 |
Left + Right | 舵机动作模式(PCA9685 16 路 PWM) |
Back | ENV 模式 —— UART2 让给 AS32 电台(9600-8-N-1),屏显闪烁 @ |
| (预置组合) | 直接启动某个预置存档 —— 每个存档绑定一个功能和设备 ID |
链路模式只在开机时确定;切换模式必须重启。
8. 课件术语对照
| 课件说法 | 实际操作 |
|---|---|
| 单步调试 | §6 —— Function 进入,Right 暂停,Enter 逐行走 |
| 翻页 | Left+Right 同按 |
| 下载 / 载入范例 | Page 0A 范例浏览器 |
| 改程序 | §5 编辑流程 |
| 点名 | Page 0C → Function 进入调整 → Enter 发 HELLO,看 Page 0D |