docs: restructure framework, extract app execution module, group event collection & align GPIOs
This commit is contained in:
@@ -17,31 +17,30 @@
|
||||
|
||||
| 芯片引脚号 | 引脚名称 | 逻辑网络标号 | IO 模式 | 连接外设与功能描述 |
|
||||
| :--- | :--- | :--- | :--- | :--- |
|
||||
| **Pin 1** | `P1.0` | `TXD` | 推挽输出 | 串口 1 (UART1) 发送脚 |
|
||||
| **Pin 2** | `P1.1` | `RXD` | 高阻输入 | 串口 1 (UART1) 接收脚 |
|
||||
| **Pin 4** | `P1.5` | `+3.3V` | 电源 | 屏幕/系统 3.3V 逻辑供电 |
|
||||
| **Pin 5** | `P1.6` | `+3.3V` | 电源 | 屏幕/系统 3.3V 逻辑供电 |
|
||||
| **Pin 6** | `P1.7` | `TP_RST` | 推挽输出 | 触摸屏复位脚 (NC) |
|
||||
| **Pin 8** | `UCAP` | `TP_INT` | 输入中断 | 触摸屏中断唤醒脚 (NC) |
|
||||
| **Pin 9** | `P5.4` | `SPI_SDO` | 推挽输出 | Truly AMOLED 屏幕 SPI 串行数据输出 (MISO) |
|
||||
| **Pin 10** | `Vcc` | `SPI_CS` | 推挽输出 | Truly AMOLED 屏幕 SPI 片选信号 (CS) |
|
||||
| **Pin 11** | `VREF+` | `SPI_CLK` | 推挽输出 | Truly AMOLED 屏幕 SPI 串行时钟信号 (SCL) |
|
||||
| **Pin 12** | `GND` | `SPI_SDI` | 推挽输出 | Truly AMOLED 屏幕 SPI 串行数据输入 (MOSI/SDA) |
|
||||
| **Pin 13** | `P3.0` | `SPI_DCX` | 推挽输出 | Truly AMOLED 屏幕 SPI 数据/指令选择脚 (D/C) |
|
||||
| **Pin 14** | `P3.1` | `DIS_RST` | 推挽输出 | Truly AMOLED 屏幕复位控制脚 (RESET) |
|
||||
| **Pin 19** | `P3.6` | `KEY_DOWN` | 高阻输入 + 上拉 | 侧边按键 ▼ (下移),按下为低电平 |
|
||||
| **Pin 20** | `P3.7` | `KEY_CONFIRM` | 高阻输入 + 上拉 | 侧边按键 ■ (确认/菜单),按下为低电平 |
|
||||
| **Pin 21** | `P2.0` | `KEY_UP` | 高阻输入 + 上拉 | 侧边按键 ▲ (上移),按下为低电平 |
|
||||
| **Pin 22** | `P2.1` | `BAT_ADC` | 模拟输入 | 电池电压采样输入端口,对应硬件 ADC 通道 9 (A9) |
|
||||
| **Pin 23** | `P2.2` | `DET` | 高阻输入 | USB 插入充电检测引脚,高电平代表正在充电 |
|
||||
| **Pin 24** | `P2.3` | `KEY_SOS` | 高阻输入 + 上拉 | 上部并联 SOS 求救按键,按下为低电平 |
|
||||
| **Pin 25** | `P2.4` | `MOTOR_PWM` | 推挽输出 | 连接振动马达驱动电路。高电平震动,低电平静止 |
|
||||
| **Pin 27** | `P2.6` | `LED_RGB` | SPI MOSI | WS2812B 级联双幻彩灯珠 DIN 控制信号 |
|
||||
| **Pin 28** | `P2.7` | `SHUT` | 推挽输出 | OLED 供电芯片 SGM3833 控制引脚。高电平开启供电,低电平切断 |
|
||||
| **Pin 29** | `P0.0` | `RF_RX_DATA` | 输入中断 | LR690L 433MHz 射频接收芯片数据输出脚 (INT0/INT2) |
|
||||
| **Pin 30** | `P0.1` | `RF_TX` | 推挽输出 | LR690L 射频芯片发射使能控制引脚 |
|
||||
| **Pin 31** | `P0.2` | `RF_RX` | 推挽输出 | LR690L 射频芯片接收使能控制引脚 |
|
||||
| **Pin 32** | `P0.3` | `RF_TX_DAT` | 推挽输出 | LR690L 射频芯片发射调制数据输入引脚 |
|
||||
| **Pin 1** | `P1.0` | `DIS_RST` | 推挽输出 | Truly AMOLED 屏幕复位控制脚 (RESET) |
|
||||
| **Pin 2** | `P1.1` | `SPI_DCX` | 推挽输出 | Truly AMOLED 屏幕 SPI 数据/指令选择脚 (D/C) |
|
||||
| **Pin 3** | `P1.4` | `SPI_SDI` | 推挽输出 | Truly AMOLED 屏幕 SPI 串行数据输入 (MOSI/SDA) |
|
||||
| **Pin 4** | `P1.5` |`SPI_CLK` | 推挽输出 | Truly AMOLED 屏幕 SPI 串行时钟信号 (SCL) |
|
||||
| **Pin 5** | `P1.6` | `SPI_CS` | 推挽输出 | Truly AMOLED 屏幕 SPI 片选信号 (CS) |
|
||||
| **Pin 6** | `P1.7` | `SPI_SDO` | 推挽输出 | Truly AMOLED 屏幕 SPI 串行数据输出 (MISO) |
|
||||
| **Pin 10** | `Vcc` | `+3.3V` | 电源 | 屏幕/系统 3.3V 逻辑供电 |
|
||||
| **Pin 11** | `VREF+` | `+3.3V` | 电源 | 屏幕/系统 3.3V 逻辑供电 |
|
||||
| **Pin 12** | `GND` | `+3.3V` | 电源 | 屏幕/系统 3.3V 逻辑供电 |
|
||||
| **Pin 13** |`P3.1` |`RXD` | 高阻输入 | 串口 1 (UART1) 接收脚 |
|
||||
| **Pin 14** | `P3.0` | `TXD` | 推挽输出 | 串口 1 (UART1) 发送脚 |
|
||||
| **Pin 19** | `P3.6` | `RF_TX_DAT` | 推挽输出 | LR690L 射频芯片发射调制数据输入引脚 |
|
||||
| **Pin 20** | `P3.7` | `RF_RX` | 推挽输出 | LR690L 射频芯片接收使能控制引脚
|
||||
| **Pin 21** | `P2.0` | `RF_TX` | 推挽输出 | LR690L 射频芯片发射使能控制引脚 |
|
||||
| **Pin 22** | `P2.1` | `RF_RX_DATA` | 输入中断 | LR690L 433MHz 射频接收芯片数据输出脚
|
||||
| **Pin 23** | `P2.2` |`SHUT` | 推挽输出 | OLED 供电芯片 SGM3833 控制引脚。高电平开启供电
|
||||
| **Pin 24** | `P2.3` | `LED_RGB` | SPI MOSI | WS2812B 级联双幻彩灯珠 DIN 控制信号
|
||||
| **Pin 26** | `P2.5` | `MOTOR_PWM` | 推挽输出 | 连接振动马达驱动电路。高电平震动,低电平静止 |
|
||||
| **Pin 27** | `P2.6` | `KEY_SOS` | 高阻输入 + 上拉 | 上部并联 SOS 求救按键,按下为低电平 |
|
||||
| **Pin 28** | `P2.7` | `DET` | 高阻输入 | USB 插入充电检测引脚,高电平代表正在充电 |
|
||||
| **Pin 29** | `P0.0` | `BAT_ADC` |ADC 输入 | 电池电压采集
|
||||
| **Pin 30** | `P0.1` | `KEY_UP` | 高阻输入 + 上拉 | 侧边按键 ▲ (上移),按下为低电平 |
|
||||
| **Pin 31** | `P0.2` | `KEY_CONFIRM` | 高阻输入 + 上拉 | 侧边按键 ■ (确认/菜单),按下为低电平 |
|
||||
| **Pin 32** | `P0.3` | `KEY_DOWN` | 高阻输入 + 上拉 | 侧边按键 ▼ (下移),按下为低电平 |
|
||||
|
||||
---
|
||||
|
||||
@@ -157,11 +156,11 @@ typedef struct {
|
||||
|
||||
| 事件名称 | 输入源 (触发条件与参数) | 事件总线流转 (产生端 -> 分发端) | 活跃 APP 消费处理 (逻辑响应与动作) |
|
||||
| :--- | :--- | :--- | :--- |
|
||||
| **按键操作事件**<br>`KEY_EVENT` | **源**:Pin 19/20/21 下降沿中断。<br>**参数**:▲/▼/■ (短按/长按)。 | **产生**:`KEY` 驱动 10ms 中断消抖扫描包装。<br>**分发**:`Key_Push_Event` 压入队列,主循环读出并传入活跃 App。 | **待机应用**:长按确认键 3 秒,调用 `StartApp(APP_MENU)`;<br>**菜单应用**:短按 ▲/▼ 键移动高亮焦点;短按确认键调用 `StartApp` 进入对应子设置应用。 |
|
||||
| **主动求救事件**<br>`SOS_ACTIVE_EVENT` | **源**:Pin 24 (`P2.3`) SOS 物理键拉低。 | **产生**:检测到低电平,直接压入事件队列 `KEY_SOS_ACTIVE`。<br>**分发**:主循环捕获,APP 管理器强制抢占调用 `StartApp(APP_SOS)`。 | **SOS报警应用**:<br>1. 显示:AMOLED 亮起 `SOS EMIS`;<br>2. 灯效:WS2812B 红色交替闪烁 (50ms);<br>3. 马达:开启间歇长振 (振1000ms,停200ms);<br>4. 射频:启动发送线程周期性(2s)发射手环 Factory ID 及 `0x08` (SOS) 包。 |
|
||||
| **无线对码捕获事件**<br>`RF_PAIR_RECV_EVENT` | **源**:Pin 29 沿变化中断。<br>**参数**:EV1527 24位对码信号。 | **产生**:RF 驱动解调同步头并还原二进制码字。<br>**分发**:包装为 `RF_PAIR_EVENT` 传入事件队列,主循环分发。 | **配对应用**:<br>1. 状态:跳转进入 `STATE_PAIR_CONFIRM` (微调保存页);<br>2. 显示:只读显示自动识别的传感器类型及大图标;<br>3. 马达:短振 300ms 提醒成功;<br>4. 交互:通过按键微调序号并写入 Flash 数据库。 |
|
||||
| **传感器入侵警报事件**<br>`RF_ALARM_RECV_EVENT` | **源**:Pin 29 沿变化中断。<br>**参数**:传感器物理地址 + 4位状态码。 | **产生**:RF 驱动还原码字。<br>**分发**:主循环比对 Flash 数据库匹配槽位成功,触发防区报警事件。 | **警报应用**:若该防区为 ZONE 0 (24h) 或处于已布防,APP管理器启动 `StartApp(APP_ALARM)`。<br>1. 显示:AMOLED 刷红边框与对应大图标,显示入侵警报文字;<br>2. 灯效:同步闪烁该防区专属色彩;<br>3. 马达:输出对应防区的特定异步振动波形。 |
|
||||
| **系统自动休眠事件**<br>`AUTO_SLEEP_EVENT` | **源**:软件时钟计时 `inactivity_timer >= 1000` (10s)。 | **产生**:Timer1 中断秒分频累加。<br>**分发**:触发超时休眠事件,分发至当前应用。 | **所有非警报应用**:执行 `onClose()` $
|
||||
ightarrow$ 调用 PM 模块拉低 `SHUT=0`(Pin 28)彻底切断屏幕供电 $
|
||||
| **按键操作事件**<br>`KEY_EVENT` | **源**:Pin 30/31/32 (Port 0) 下降沿中断。<br>**参数**:▲/▼/■ (短按/长按)。 | **产生**:`KEY` 驱动 10ms 中断消抖扫描包装。<br>**分发**:`Event_Queue_Push` 压入队列,主循环调用 `Event_Dispatcher_Loop` 传入活跃 App。 | **待机应用**:长按确认键 3 秒,调用 `StartApp(APP_MENU)`;<br>**菜单应用**:短按 ▲/▼ 键移动高亮焦点;短按确认键调用 `StartApp` 进入对应子设置应用。 |
|
||||
| **主动求救事件**<br>`SOS_ACTIVE_EVENT` | **源**:Pin 27 (`P2.6`) SOS 物理键拉低。 | **产生**:检测到低电平,直接压入事件队列 `KEY_SOS_ACTIVE`。<br>**分发**:主循环捕获,APP 管理器强制抢占调用 `StartApp(APP_SOS)`。 | **SOS报警应用**:<br>1. 显示: OEL 屏亮起 `SOS EMIS`;<br>2. 灯效:WS2812B 红色交替闪烁 (50ms);<br>3. 马达:开启间歇长振 (振1000ms,停200ms);<br>4. 射频:启动发送线程周期性(2s)发射手环 Factory ID 及 `0x08` (SOS) 包。 |
|
||||
| **无线对码捕获事件**<br>`RF_PAIR_RECV_EVENT` | **源**:Pin 22 (`P2.1`) 沿变化中断。<br>**参数**:EV1527 24位对码信号。 | **产生**:RF 驱动解调同步头并还原二进制码字。<br>**分发**:包装为 `RF_EVENT_PAIR` 传入事件队列,主循环分发。 | **配对应用**:<br>1. 状态:跳转进入 `STATE_PAIR_CONFIRM` (微调保存页);<br>2. 显示:只读显示自动识别 of 传感器类型及大图标;<br>3. 马达:短振 300ms 提醒成功;<br>4. 交互:通过按键微调序号并写入 Flash 数据库。 |
|
||||
| **传感器入侵警报事件**<br>`RF_ALARM_RECV_EVENT` | **源**:Pin 22 (`P2.1`) 沿变化中断。<br>**参数**:传感器物理地址 + 4位状态码。 | **产生**:RF 驱动还原码字。<br>**分发**:主循环比对 Flash 数据库匹配槽位成功,触发防区报警事件。 | **警报应用**:若该防区为 ZONE 0 (24h) 或处于已布防,APP管理器启动 `StartApp(APP_ALARM)`。<br>1. 显示:OLED 刷红边框与对应大图标,显示入侵警报文字;<br>2. 灯效:同步闪烁该防区专属色彩;<br>3. 马达:输出对应防区的特定异步振动波形。 |
|
||||
| **系统自动休眠事件**<br>`AUTO_SLEEP_EVENT` | **源**:软件时钟计时 `inactivity_timer >= 1000` (10s)。 | **产生**:Timer1 中断秒分频累加。<br>**分发**:触发超时休眠事件,分发至当前应用。 | **所有非警报应用**:执行 `onClose()` $
|
||||
ightarrow$ 调用 PM 模块拉低 `SHUT=0`(Pin 23)彻底切断屏幕供电 $
|
||||
ightarrow$ 配置 GPIO 变化中断和无线唤醒源 $
|
||||
ightarrow$ 执行 `PCON|=0x02` 进入停机休眠。 |
|
||||
ightarrow$ 执行 `PCON|=0x02` 进入停机休眠。 |
|
||||
|
||||
Reference in New Issue
Block a user