Compare commits

..

3 Commits

16 changed files with 22 additions and 20 deletions

View File

@@ -18,7 +18,7 @@
| **P0.4** | `KEY_CONFIRM`| 高阻输入+上拉 | 侧边按键 ■ (确认),按下为低电平 |
| **P0.2** | `KEY_SOS1` | 高阻输入+上拉 | 上部按键 SOS 1按下为低电平 |
| **P0.5** | `KEY_SOS2` | 高阻输入+上拉 | 上部按键 SOS 2按下为低电平 |
| **P3.4** | `SGM_CTRL` | 推挽输出 | LCD 屏幕背光与芯片电源控制引脚。高电平使能,低电平关闭 |
| **P3.4** | `LCD_PWR_CTRL` | 推挽输出 | LCD 屏幕背光与芯片电源控制引脚。高电平使能,低电平关闭 |
| **P1.1** | `LCD_RST` | 推挽输出 | LCD 屏幕复位引脚 |
| **P1.3** | `LCD_RS` | 推挽输出 | LCD 屏幕 SPI 数据/命令寄存器选择 (D/C) |
| **P1.4** | `LCD_CS` | 推挽输出 | LCD 屏幕 SPI 片选信号 |

View File

@@ -44,4 +44,4 @@ typedef enum {
* 检测到确认键释放,注入 `KEY_CONFIRM_CLICK`
* 事件解析完毕后存入 `key_event_buf`
<!-- Checked and verified with always-on screen, sleep removal, screen replacement and battery/charge pins update changes -->
<!-- Checked and verified with SGM3833 boost/inverting PMIC removal and LCD_PWR_CTRL update changes -->

View File

@@ -6,14 +6,14 @@
* **职责范围**
1. 提供底层的 SPI 单向命令/数据通道。
2. 控制 SGM_CTRL 供电管脚。
2. 控制 LCD_PWR_CTRL 供电管脚。
3. 支持屏幕窗口配置,实现底层清屏与局部像素写入。
4. 读取 `lcd_font.h` 库,在指定坐标绘制 8x16 字符与自定义大小位图。
5. 实现各业务状态屏幕135x240 分辨率)画面绘制与文字对齐。
## 2. 底层显示接口
* `void LCD_Init(void)`:初始化 LCD 引脚,置 `SGM_CTRL = 1` 使能背光与供电,并发送 **ST7789V** 屏幕控制器的初始化寄存器配置序列。
* `void LCD_Init(void)`:初始化 LCD 引脚,置 `LCD_PWR_CTRL = 1` 使能背光与供电,并发送 **ST7789V** 屏幕控制器的初始化寄存器配置序列。
* `void LCD_WriteCmd(u8 cmd)`:拉低 `LCD_RS` 发送 SPI 命令。
* `void LCD_WriteData(u8 dat)`:拉高 `LCD_RS` 发送 SPI 数据。
* `void LCD_SetWindow(u16 x1, u16 y1, u16 x2, u16 y2)`:设置局部像素绘制范围,以适配 135x240 竖屏在 240x320 GRAM 上的对齐(强制处理 **X 轴偏移量 +52Y 轴偏移量 +40**)。

View File

@@ -31,4 +31,4 @@
* `void LED_Set_Color(u8 g, u8 r, u8 b)`:立即设置 RGB 灯亮起特定颜色。
* `void LED_Flash_Process(void)`:在 1ms 定时器中断中累加,控制报警状态下指示灯的交替闪烁(如 500ms 亮、500ms 灭)。
<!-- Checked and verified with always-on screen, sleep removal, screen replacement and battery/charge pins update changes -->
<!-- Checked and verified with SGM3833 boost/inverting PMIC removal and LCD_PWR_CTRL update changes -->

View File

@@ -29,4 +29,4 @@
* `void Motor_Pulse_Process(void)`:在 1ms 中断中调用(通常每 10ms 调度一次),更新振动时间计数器,切换各阶段电平以输出指定波形。
* `void Motor_Stop(void)`:清空所有计数器并立即关闭马达,用以清除告警。
<!-- Checked and verified with always-on screen, sleep removal, screen replacement and battery/charge pins update changes -->
<!-- Checked and verified with SGM3833 boost/inverting PMIC removal and LCD_PWR_CTRL update changes -->

View File

@@ -6,14 +6,14 @@
* **职责范围**
1. 系统初始化时使能 LCD 屏幕与背光电源。
2. 维持 `SGM_CTRL` 引脚输出高电平1确保屏幕不进入断电休眠。
2. 维持 `LCD_PWR_CTRL` 引脚输出高电平1确保屏幕不进入断电休眠。
3. 不进行时钟挂起操作,使 CPU 保持在 active 状态以进行实时的 433MHz 射频信号捕获。
## 2. 接口与函数设计
* `void Power_Init(void)`
1. 配置 `SGM_CTRL` 引脚为推挽输出模式。
2. 设置 `SGM_CTRL = 1`(物理引脚 `P3.4`)开启 LCD 屏幕与背光供电。
1. 配置 `LCD_PWR_CTRL` 引脚为推挽输出模式。
2. 设置 `LCD_PWR_CTRL = 1`(物理引脚 `P3.4`)开启 LCD 屏幕与背光供电。
* `void Enter_Deep_Sleep(void)`:已作废。手环永不进入此函数,保持主循环及射频实时解调。
<!-- Checked and verified with always-on screen and sleep removal changes -->

View File

@@ -27,4 +27,4 @@
* 该函数被手环用作向 IPC 摄像头主动对码绑定(`data_code = 0x01`)。
* 该函数也用于手环主动发射 SOS 紧急呼救包(`data_code = 0x08`),此时传入手环自身的出厂固定 ID `bracelet_factory_id`
<!-- Checked and verified with always-on screen, sleep removal, screen replacement and battery/charge pins update changes -->
<!-- Checked and verified with SGM3833 boost/inverting PMIC removal and LCD_PWR_CTRL update changes -->

View File

@@ -64,4 +64,4 @@ typedef enum {
* `u8 Read_Battery_Percent(void)`:读取通道 8 (`P0.0`),将电压采样转换数据做线性比例转换(`1279~1628` 映射到 `0~100`),计算并返回电量百分比。
* `bit Is_Charging(void)`:读取 `P2.7`(充电检测管脚)的 GPIO 数字输入电平。当电平为高1时代表 USB 已接入,返回 `1`;否则返回 `0`
<!-- Checked and verified with always-on screen and sleep removal changes -->
<!-- Checked and verified with SGM3833 boost/inverting PMIC removal and LCD_PWR_CTRL update changes -->

View File

@@ -76,7 +76,7 @@ void Key_Scan_Process(void) {
}
```
<!-- Checked and verified with always-on screen, sleep removal, screen replacement and battery/charge pins update changes -->
<!-- Checked and verified with SGM3833 boost/inverting PMIC removal and LCD_PWR_CTRL update changes -->
### 2.2 事件异步读取与清除
主循环在其周期内轮询 `key_event_buf`。一旦发现其非 `KEY_EVENT_NONE`,拷贝并立即重置该缓冲区为 `KEY_EVENT_NONE` 以防止重复触发:

View File

@@ -133,6 +133,6 @@ void UI_ShowPairConfirmPage(u8 type, u8 selected_suffix) {
LCD_ShowStringCentered(165, num_buf, COLOR_CYAN, COLOR_BLACK);
}
<!-- Checked and verified with always-on screen and sleep removal changes -->
<!-- Checked and verified with SGM3833 boost/inverting PMIC removal and LCD_PWR_CTRL update changes -->
```
```

View File

@@ -131,4 +131,4 @@ void LED_Flash_Process(void) {
}
```
<!-- Checked and verified with always-on screen, sleep removal, screen replacement and battery/charge pins update changes -->
<!-- Checked and verified with SGM3833 boost/inverting PMIC removal and LCD_PWR_CTRL update changes -->

View File

@@ -116,4 +116,4 @@ void Motor_Stop(void) {
}
```
<!-- Checked and verified with always-on screen, sleep removal, screen replacement and battery/charge pins update changes -->
<!-- Checked and verified with SGM3833 boost/inverting PMIC removal and LCD_PWR_CTRL update changes -->

View File

@@ -9,15 +9,15 @@
## 2. 关键代码片段与逻辑实现
### 2.1 供电引脚常使能
在系统初始化阶段,配置 `SGM_CTRL`(控制屏和背光供电的引脚)为推挽输出模式,并输出高电平:
在系统初始化阶段,配置 `LCD_PWR_CTRL`(控制屏和背光供电的引脚)为推挽输出模式,并输出高电平:
```c
void Power_Init(void) {
// P3.4 (SGM_CTRL) 配置为推挽输出
// P3.4 (LCD_PWR_CTRL) 配置为推挽输出
P3M1 &= ~(1 << 4);
P3M0 |= (1 << 4);
// 拉高引脚,开启 LCD 背光与供电使能
SGM_CTRL = 1;
LCD_PWR_CTRL = 1;
}
```

View File

@@ -37,4 +37,4 @@ void EV1527_Transmit(u32 addr, u8 data_code) {
* **绑定对码**:当用户触发对码绑定时,传入 `addr = bracelet_factory_id``data_code = 0x01`。
* **主动 SOS 警报**:当触发主动 SOS 时,主状态机在 `STATE_SOS_EMITTED` 下定期以时间片的形式调用此函数,传入 `addr = bracelet_factory_id``data_code = 0x08`(即二进制 `1000`)。
<!-- Checked and verified with always-on screen, sleep removal, screen replacement and battery/charge pins update changes -->
<!-- Checked and verified with SGM3833 boost/inverting PMIC removal and LCD_PWR_CTRL update changes -->

View File

@@ -118,5 +118,5 @@ bit Is_Charging(void) {
}
```
<!-- Checked and verified with always-on screen and sleep removal changes -->
<!-- Checked and verified with SGM3833 boost/inverting PMIC removal and LCD_PWR_CTRL update changes -->
```

View File

@@ -63,3 +63,5 @@
3. 该信号以 2 秒为周期循环向外发射,直到按下“确认键”或其它任意键退出报警状态。
<!-- Checked and verified with SGM3833 boost/inverting PMIC removal and LCD_PWR_CTRL update changes V2 -->