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` 进入停机休眠。 |
|
||||
|
||||
@@ -686,6 +686,10 @@
|
||||
<div class="module-title">BgApp</div>
|
||||
<div class="module-tag">后台监测应用</div>
|
||||
</div>
|
||||
<div class="module-card apps-node" id="APP" onclick="selectModule('APP')">
|
||||
<div class="module-title">APP (应用模块)</div>
|
||||
<div class="module-tag">运行与页面逻辑</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 2. 应用管理层 (APP Management) -->
|
||||
@@ -1012,6 +1016,16 @@ typedef struct {
|
||||
|
||||
// 模块细节定义 (数据驱动 - 符合5层架构)
|
||||
const modulesData = {
|
||||
APP: {
|
||||
title: "APP (页面运行与渲染模块)",
|
||||
pin: "无物理引脚 (处于应用业务层)",
|
||||
level: "5. 应用业务层 (Applications)",
|
||||
hwsource: "App 管理器与主循环生命周期注册",
|
||||
file: "Docs/50_module-breakdown/mod-app.md",
|
||||
inputs: ["AppManager (生命周期 OnStart/onRun/onClose/onEvent)", "EventDispatcher (路由按键与射频警报事件)"],
|
||||
outputs: ["LCD (刷写 Truly GRAM 窗口)", "MOTOR/LED (发出状态特定的异步动作指令)"],
|
||||
desc: "手环的核心页面运行与交互层。ClockApp 在前台绘制大字时钟及右上角电量指示;MenuApp 显示单屏菜单项并引导页面跳转;PairApp 接收按键输入在 [01]~[99] 范围内微调序号并保存至 Flash 数据库;AlarmApp 刷新红粗边框,闪烁灯效,异步输出防区特定的马达振动;SOSApp 周期发射 0x08 求救包并红灯爆闪。"
|
||||
},
|
||||
ActiveApp: {
|
||||
title: "ActiveApp (前台活跃应用)",
|
||||
pin: "无物理引脚 (处于应用业务层)",
|
||||
@@ -1304,33 +1318,32 @@ typedef struct {
|
||||
setTimeout(drawConnections, 200);
|
||||
});
|
||||
|
||||
// ------------------ 引脚配置交互数据 ------------------
|
||||
// ------------------ 引脚配置交互数据 ------------------
|
||||
const pinsInfo = {
|
||||
'1': { mcu: "P1.0 / RXD2", net: "TXD", mode: "推挽输出", hw: "外部调试串口发送端,用来下载及打印架构运行日志。", sw: "通过 UART1 串口发送缓冲寄存器 SBUF 直接写入。" },
|
||||
'2': { mcu: "P1.1 / TXD2", net: "RXD", mode: "高阻输入", hw: "外部调试串口接收端,支持在测试页面输入控制指令。", sw: "UART1 中断接收,解析对应的指令字并投入状态调度。" },
|
||||
'4': { mcu: "P1.5 / SCL", net: "+3.3V", mode: "电源逻辑供电", hw: "提供 Truly AMOLED 显示芯片的 3.3V 逻辑正向工作电压。", sw: "N/A" },
|
||||
'5': { mcu: "P1.6 / SDA", net: "+3.3V", mode: "电源逻辑供电并联线", hw: "Truly 0.95 AMOLED 屏 3.3V 逻辑并联通道。", sw: "N/A" },
|
||||
'6': { mcu: "P1.7 / RST", net: "TP_RST", mode: "推挽输出", hw: "触摸屏复位控制线,本手环为非触摸,引脚悬空扩展。", sw: "GPIO 设置为高电平输出挂起。" },
|
||||
'8': { mcu: "UCAP", net: "TP_INT", mode: "输入中断", hw: "触摸板中断唤醒电平,非触摸手环,物理悬空。", sw: "N/A" },
|
||||
'9': { mcu: "P5.4 / SS", net: "SPI_SDO", mode: "推挽输出", hw: " Truly AMOLED 屏 SPI 主动输出 (MISO) 对应 P5.4 物理控制线。", sw: "SPI 寄存器配置复用输出。" },
|
||||
'10': { mcu: "Vcc / AVcc", net: "SPI_CS", mode: "推挽输出", hw: " Truly AMOLED 屏 SPI 片选使能线,低电平使能对 RM69310 的写屏操作。", sw: "LCD 读写驱动中,写像素前拉低 CS,写完后拉高 CS。" },
|
||||
'11': { mcu: "VREF+", net: "SPI_CLK", mode: "推挽输出", hw: " Truly AMOLED 屏 SPI 时钟同步脉冲控制引脚 (SCL)。", sw: "SPI 写入数据时由硬件模块自动产生串行移位脉冲。" },
|
||||
'12': { mcu: "GND / AGND", net: "SPI_SDI", mode: "推挽输出", hw: " Truly AMOLED 屏 SPI 输入引脚 (MOSI/SDA),写入像素二进制色彩数据流。", sw: "SPI 发送数据寄存器 SPDAT 写入字节时产生该路时序。" },
|
||||
'13': { mcu: "P3.0 / RxD", net: "SPI_DCX", mode: "推挽输出", hw: " Truly AMOLED 屏幕的数据命令指示线。拉高表示当前写入 GRAM 的是 16-bit 像素数据;拉低表示写入的是控制寄存器指令。", sw: "由 `lcd.c` 的 `LCD_WriteData` 和 `LCD_WriteCmd` 进行拉高/低控制。" },
|
||||
'14': { mcu: "P3.1 / TxD", net: "DIS_RST", mode: "推挽输出", hw: " Truly AMOLED 屏硬件复位引脚。开机或安全唤醒时通过高低电平跳变重置屏幕控制寄存器。", sw: "唤醒序列中先拉低 10ms,再拉高 10ms 触发硬件复位配置命令。" },
|
||||
'19': { mcu: "P3.6 / INT2", net: "KEY_DOWN", mode: "高阻输入 + 使能内部上拉", hw: "侧边 ▼ (下移键),按下触发引脚接地低电平;休眠时支持 P3.6 端口中断直接唤醒 CPU。", sw: "KEY 初始化设置 P3PU=0x40,Timer1 中断中以 10ms 周期读取 P3.6 电平值进行滤波。" },
|
||||
'20': { mcu: "P3.7 / INT3", net: "KEY_CONFIRM", mode: "高阻输入 + 使能内部上拉", hw: "侧边 ■ (确认键),短按确认,长按 3 秒进入主菜单;支持休眠中断唤醒。", sw: "KEY 初始化设置 P3PU=0x80,中断中定时扫描累加计数,若计数满足 300 判定为 CONFIRM_LONG 并投递事件。" },
|
||||
'21': { mcu: "P2.0 / A8", net: "KEY_UP", mode: "高阻输入 + 使能内部上拉", hw: "侧边 ▲ (上移键),按下触发引脚低电平;支持休眠时中断唤醒系统。", sw: "KEY 初始化设置 P2PU=0x01,通过移位计数器累加消抖。" },
|
||||
'22': { mcu: "P2.1 / A9", net: "BAT_ADC", mode: "模拟输入", hw: "连接电池分压电路。采集 0~1.3V 电池模拟电压提供给系统电量处理模块。", sw: "开启内置 12位 ADC 并配置通道 9 转换。取多次累加平均值消噪,线性转换为 0%~100%。" },
|
||||
'23': { mcu: "P2.2 / A10", net: "DET", mode: "高阻输入", hw: "底座 USB 充电插入检测。充电时底座供电输出将其拉为高电平;常态为低电平。", sw: "时钟待机 App (ClockApp) 在 onRun 轮询中读取 P2.2 引脚状态更新充电加号显示。" },
|
||||
'24': { mcu: "P2.3 / A11", net: "KEY_SOS", mode: "高阻输入 + 使能内部上拉", hw: "物理并联的 SOS1 与 SOS2 报警按键共地。按下任意键直接拉低 P2.3 触发紧急求救。", sw: "KEY 初始化设置 P2PU=0x08,Timer1 中断检测 P2.3,低电平消抖完毕立刻推送最高优先级的 KEY_SOS_ACTIVE 事件。" },
|
||||
'25': { mcu: "P2.4 / MISO_2", net: "MOTOR_PWM", mode: "推挽输出", hw: "连接振动马达驱动 MOS 晶体管控制栅。高电平开启震动;低电平关断马达。", sw: "由 `Motor_Start_Pattern` 发起动作,Timer1 定时中断在后台扣减时间并切换 P2.4 电平实现异步非阻塞震动。" },
|
||||
'27': { mcu: "P2.6 / SCLK_2", net: "LED_RGB", mode: "SPI_MOSI 硬件复用输出", hw: "连接上、下级联的双 WS2812B 灯珠的数据输入脚,传送高频 RGB 色彩流。", sw: "写数据时,临时屏蔽全局中断并将 P2.4 马达脚切换为高阻隔离,通过 SPI 高速推字节时序。" },
|
||||
'28': { mcu: "P2.7 / SS_2", net: "SHUT", mode: "推挽输出", hw: " AMOLED 升压 PMIC (SGM3833) 芯片的使能使能控制脚。拉高开启屏幕正负电网工作;拉低彻底切断供电消除漏电。", sw: "PM 驱动模块控制。睡眠时执行 `SHUT = 0` 关闭屏幕电源;安全唤醒后执行 `SHUT = 1` 并强延时 50ms。" },
|
||||
'29': { mcu: "P0.0 / ADC8", net: "RF_RX_DATA", mode: "输入中断 (INT0/INT2)", hw: "LR690L 433MHz 无线接收输出,检测到无线载波时输出脉冲沿,休眠时唤醒单片机。", sw: "休眠前配置为中断源;常态下 RF 解调驱动定时捕捉前导同步头宽度,计算基准时基 T 还原 24位 码。" },
|
||||
'30': { mcu: "P0.1 / ADC9", net: "RF_TX", mode: "推挽输出", hw: "LR690L 发射偏置使能引脚。拉高后射频前端开启天线能量推送。", sw: "主动发射对码或 SOS 求救码时,由 RF 驱动在底层拉高 P0.1 开启发射。" },
|
||||
'31': { mcu: "P0.2 / ADC10", net: "RF_RX", mode: "推挽输出", hw: "LR690L 接收使能控制引脚。高电平代表芯片处于监听天线高频信号状态。", sw: "常态待机和等待对码搜索下,GPIO 默认拉高 P0.2 以监听外界载波。" },
|
||||
'32': { mcu: "P0.3 / ADC11", net: "RF_TX_DAT", mode: "推挽输出", hw: "LR690L 无线调制数据输入,在此引脚输出特定的高低电平比值即可将数据射出。", sw: "主动发射时,利用 GPIO 高速反转 P0.3 产生同步前导宽及 EV1527 对应的 1/0 码脉冲。" }
|
||||
'1': { mcu: "P1.0 / DIS_RST", net: "DIS_RST", mode: "推挽输出", hw: "Truly AMOLED 屏幕复位控制脚 (RESET)。拉低重置屏幕驱动芯片寄存器。", sw: "LCD_Init 模块复位时置低 10ms,再置高 10ms 以启动上电序列。" },
|
||||
'2': { mcu: "P1.1 / SPI_DCX", net: "SPI_DCX", mode: "推挽输出", hw: "Truly AMOLED 屏幕的 SPI 数据/指令选择脚。拉高写数据,拉低写指令。", sw: "写数据时拉高引脚;写配置控制命令时拉低引脚。" },
|
||||
'3': { mcu: "P1.4 / SPI_SDI", net: "SPI_SDI", mode: "推挽输出", hw: "Truly AMOLED 屏幕的 SPI 串行数据输入端 (MOSI/SDA)。", sw: "向 SPI 发送缓存寄存器 SPDAT 写入 8 位字节自动串行移位输出。" },
|
||||
'4': { mcu: "P1.5 / SPI_CLK", net: "SPI_CLK", mode: "推挽输出", hw: "Truly AMOLED 屏幕的 SPI 串行同步时钟引脚 (SCL)。", sw: "SPI 通信时由单片机片上外设硬件模块自动产生串行移位脉冲。" },
|
||||
'5': { mcu: "P1.6 / SPI_CS", net: "SPI_CS", mode: "推挽输出", hw: "Truly AMOLED 屏幕的 SPI 片选输入脚。低电平选中Truly显示芯片操作。", sw: "在对屏幕进行像素或指令读写前置 0,读写完毕后置 1 挂起片选线。" },
|
||||
'6': { mcu: "P1.7 / SPI_SDO", net: "SPI_SDO", mode: "推挽输出", hw: "Truly AMOLED 屏幕的 SPI 串行数据输出端 (MISO) 用于状态读取。", sw: "N/A" },
|
||||
'10': { mcu: "Vcc / AVcc", net: "+3.3V", mode: "电源逻辑供电", hw: "屏幕与系统 3.3V 逻辑工作正向电压轨道。", sw: "N/A" },
|
||||
'11': { mcu: "VREF+", net: "+3.3V", mode: "电源并联线", hw: "芯片基准电压与 3.3V 电源物理并联通道。", sw: "N/A" },
|
||||
'12': { mcu: "GND / AGND", net: "+3.3V", mode: "电源并联线", hw: "电源并联,稳定模拟和数字地电平轨道通道。", sw: "N/A" },
|
||||
'13': { mcu: "P3.1 / RxD", net: "RXD", mode: "高阻输入", hw: "外部调试串口 1 (UART1) 接收引脚,用于接收控制指令或测试配置包。", sw: "UART1 串口接收中断。当收到指定调试帧时触发对应的状态切换。" },
|
||||
'14': { mcu: "P3.0 / TxD", net: "TXD", mode: "推挽输出", hw: "外部调试串口 1 (UART1) 发送引脚,用于向PC输出系统日志及调试标志。", sw: "通过 UART 串口发送缓存寄存器 SBUF 直接写入以触发物理串行传输。" },
|
||||
'19': { mcu: "P3.6", net: "RF_TX_DAT", mode: "推挽输出", hw: "LR690L 射频模块数据发射脚,向天线前端输入特定的高低电平比值信号。", sw: "主动发射时,利用 GPIO 高速反转产生符合 EV1527 时域码宽的串行方波。" },
|
||||
'20': { mcu: "P3.7", net: "RF_RX", mode: "推挽输出", hw: "LR690L 射频芯片接收监听使能控制脚,高电平开始监听无线载波。", sw: "常态待机和搜码模式下 GPIO 默认拉高引脚以保持持续接收侦听状态。" },
|
||||
'21': { mcu: "P2.0", net: "RF_TX", mode: "推挽输出", hw: "LR690L 射频芯片发射偏置使能引脚,拉高打开射频前端发射天线电磁波。", sw: "当需要主动求救或对码发射时,先拉高此引脚,发射完毕后置 0 关闭天线。" },
|
||||
'22': { mcu: "P2.1", net: "RF_RX_DATA", mode: "输入中断 (INT2)", hw: "LR690L 433MHz 无线接收输出引脚,在捕获到无线载波变化时输出沿信号。", sw: "休眠前配置该引脚上升/下降沿作为 INT2 中断唤醒源;平时由沿捕捉解码。" },
|
||||
'23': { mcu: "P2.2", net: "SHUT", mode: "推挽输出", hw: "AMOLED 升压芯片 SGM3833 供电控制脚。拉高开启屏幕电网;拉低关断。", sw: "电源管理模块操作。睡眠时置 0 切断屏幕正负压;唤醒后置 1 并强延时 50ms。" },
|
||||
'24': { mcu: "P2.3", net: "LED_RGB", mode: "SPI_MOSI 硬件复用输出", hw: "WS2812B 级联双幻彩灯 DIN 控制引脚,输入符合 800kHz 高频的 RGB 码流。", sw: "写彩灯时临时屏蔽中断,将 P2.5 马达隔离引脚,高速送出 24bit 灯效数据。" },
|
||||
'26': { mcu: "P2.5", net: "MOTOR_PWM", mode: "推挽输出", hw: "连接振动马达驱动 MOS 晶体管控制栅。高电平触发震动;低电平关断马达。", sw: "马达驱动模块负责在 Timer1 后台定时控制 P2.5 输出指定时间的占空波形。" },
|
||||
'27': { mcu: "P2.6", net: "KEY_SOS", mode: "高阻输入 + 上拉", hw: "物理并联的 SOS1 与 SOS2 报警按键,按下将引脚接地拉低,休眠支持唤醒。", sw: "KEY 初始化使能 P2PU 的 Bit 6 上拉,Timer1 读取引脚电平沿推送 SOS 警报。" },
|
||||
'28': { mcu: "P2.7", net: "DET", mode: "高阻输入", hw: "USB 底座充电插入检测。USB 连接时输入高电平,平时为低电平。", sw: "时钟待机应用在 OnRun 循环中读取引脚电平状态,更新时钟后是否带 '+' 充电符。" },
|
||||
'29': { mcu: "P0.0 / ADC8", net: "BAT_ADC", mode: "模拟输入", hw: "连接电池采样分压电阻中点。采集 0~1.3V 电压以判定当前电池容量。", sw: "使能内置 12位 ADC 的通道 8 进行模数转换,将结果换算为电池百分比。" },
|
||||
'30': { mcu: "P0.1", net: "KEY_UP", mode: "高阻输入 + 上拉", hw: "侧边按键 ▲ (上移键)。短按进行参数累加或高亮切换,休眠支持唤醒。", sw: "KEY 初始化使能 P0PU 的 Bit 1 上拉,消抖后向事件队列投递 UP_CLICK 事件。" },
|
||||
'31': { mcu: "P0.2", net: "KEY_CONFIRM", mode: "高阻输入 + 上拉", hw: "侧边按键 ■ (确认/菜单键)。短按确认,长按 3 秒调出主菜单交互。", sw: "P0PU 使能上拉,10ms 定时判定短击 (CONFIRM_CLICK) 与 3秒长按 (CONFIRM_LONG)。" },
|
||||
'32': { mcu: "P0.3", net: "KEY_DOWN", mode: "高阻输入 + 上拉", hw: "侧边按键 ▼ (下移键)。短按移动高亮,长按 2 秒退出警报,休眠支持唤醒。", sw: "P0PU 使能上拉,判定短击 (DOWN_CLICK) 与 2秒长按 (DOWN_LONG) 并投递。" }
|
||||
};
|
||||
|
||||
function selectPin(pinNum) {
|
||||
|
||||
Reference in New Issue
Block a user