手环端开发计划书 (V1.2)

STC32G12K128 核心手环系统开发及 UI 渲染方案说明(法语及单线 RGB 版)
手环系统硬件接口与数据流拓扑图
INPUTS / 输入与按键 按键输入 (▲ / ▼ / SOS) P0.1: KEY_UP (▲) P0.3: KEY_DOWN (▼) P0.2: KEY_SOS LR690L 433MHz 接收 P2.1: RF_RX_DATA P2.2: SHUT (低使能) P3.7: RF_RX 电源开关 MCU / 核心业务逻辑 主程序状态机 ● STATE_NORMAL (时钟/待机) ● STATE_PAIR (对码配对) ● STATE_ALARM (告警响应) 时间片调度与存储 Timer 1: 1ms 消抖与时钟 模拟 LED / 马达时序控制 IAP Flash: 保存对码数据 OUTPUTS / 交互与显示 OLED 局部刷新渲染 RM69310 (CS/RST/DCX/SPI) ASCII 8x16 & 16x32 全法语 UI 显示界面 物理反馈警报输出 单线 RGB (P0.0: WS2812 DIN) 800Kbps 归零码串行驱动 P2.5: 振动马达驱动
📊 代码逻辑运行流程图
主循环与 Timer1 中断、RF 双模解码流程
主程序运行流程 main() 系统初始化 (时钟/GPIO/Timer1/OLED) 读取 IAP/EEPROM 传感器对码表 进入 STATE_NORMAL 并开启接收管 while(1) 轮询 有按键事件触发? 处理按键 (状态切换/对码/SOS) 有RF信号输入? 解析协议 (报警触发 / 主机广播) 执行 OLED 局部增量刷新渲染 Timer 1 中断 (1ms 软件调度) 定时器中断服务程序 (ISR) 1. 系统软件时钟累加 (维护 毫秒/秒/分钟 时钟滴答) 2. 按键检测与软件消抖 (每10ms) (检测单击、长按3秒/5秒组合事件) 3. RGB LED 呼吸灯 PWM 翻转 (20ms软件占空比发生器,控制亮度) 4. 警报马达振动时序控制 (控制振动/暂停毫秒脉宽计数器) 中断退出 (RETI) RF 双模解码流程 RF_Decode() 检测引脚 P2.1 (RF_RX_DATA) 为高电平 是否为 EV1527 同步头脉宽? -> 解调 24 位传感器 ID -> 校验前导0x55/同步0xA55A
一、 硬件引脚映射与电气特性
硬件功能分类 端口别名 STC32G 引脚 驱动电气逻辑说明
🌈 单线制幻彩 RGB LED WS2812_DI P0.0 单线级联数据输入,800Kbps 归零码协议,推挽输出,上电初始化输出 0
📳 振动驱动马达 MOTOR P2.5 直流控制,输出 1 开启马达,输出 0 停止。
▲ 方向按键 (上) KEY_UP P0.1 按下为 0,带内部上拉输入。
▼ 方向按键 (下) KEY_DOWN P0.3 按下为 0,带内部上拉输入。
🆘 紧急/对码按键 KEY_SOS P0.2 按下为 0,带内部上拉输入。
二、 核心设计决策 (Design Decisions)
💡 决策 1:纯法语语言包(French-Only UI)
由于系统调整为仅需要法语界面,因此移除了原本复杂的中文字库寻址及字库空间分配方案。全界面文案已替换为符合法语习惯的词汇。为了适应 120 像素宽的 OLED 屏幕边界,各短语的长度被严格控制在 15 个字符以内以防止屏幕溢出,并微调了各个关键界面的显示坐标(如 "DESARME" 页面图标与文字)实现完美居中。
📡 决策 2:单线制幻彩 RGB LED 驱动集成 (XL-2020RGBC-2812B)
原三路 GPIO 独立驱动的共阳极三色 LED 更换为内置 IC 的单线级联式幻彩 LED 珠。由于 STC32G 工作在 24MHz 1T 模式下(每周期 41.67ns),通过在软件上实现精准 NOP 指令延时的 bit-bang 驱动,通过 P0.0 引脚向 LED 发送符合 800Kbps 时序(T0H/T0L/T1H/T1L 归零码)的 24 位 GRB 数据流。为了不影响原有各状态下复杂的灯效和马达波形逻辑,我们仅将 LED_R/G/B 重新定义为内存中的虚拟 bit 变量。在 1ms 中断服务程序末尾,当检测到这些虚拟变量的数值发生改变时,自动触发一次单线数据发送,从而实现了上层逻辑的 100% 兼容。
三、 UI 渲染引擎细节与坐标规划

1. 直流流式送数驱动 (`LCD_DrawMonoBitmap`)

基于硬件 SPI 接口,在写图前设置矩形窗口 (x, y) -> (x+w-1, y+h-1),然后从 Flash 字模中逐 Bit 扫描:如果是 1 则流式送入前景色,0 则送入背景色。此方案**零显存开销**,完全避开了单片机 RAM 资源瓶颈,且写屏速度极快。

2. 圆形视口安全区域划分

由于屏幕物理切边,有效显示区收拢在 X 坐标 [10, 110],Y 坐标 [30, 210] 的安全圆形范围内:

四、 验证任务清单 (Task Checklist)