docs: 增加手环主动发射 SOS 和获取出厂固定 ID 芯片硬件 UID 规划

This commit is contained in:
2026-07-09 11:03:18 +08:00
parent fdf0c5ed1b
commit 89ff52c9b3
15 changed files with 96 additions and 15 deletions

View File

@@ -9,10 +9,7 @@
2. 提供 RTC 软时钟维护(`current_hour`, `current_min`, `current_sec`)。
3. 利用 Timer 1 产生 1ms 定时器中断,维护毫秒滴答计数器并作为其他外设时效的基础。
4. 实现 IAP 读写底层函数,对防区数据库进行存取与读取。
* **模块依赖**
* 依赖 `mod-lcd.md` 进行 UI 状态重绘。
* 依赖 `mod-rf.md` 提供 RF 解码信号与数据包注入。
* 依赖 `mod-key.md` 响应按键动作。
5. 读取并管理手环出厂固定唯一的 `bracelet_factory_id`,作为主动射频发送的数据源地址。
## 2. 数据结构定义
@@ -53,3 +50,10 @@ typedef enum {
* `void Save_Database(void)`:擦除 Flash 扇区并将内存中的 `sensor_list` 写入 Flash。
* `void Add_Sensor(u32 addr, u8 type)`:向 `sensor_list` 添加传感器信息并自动调用 `Save_Database()`
* `bit Check_Sensor_ID(u32 addr, u8 *out_slot_index)`:在数据库中检索该地址码,若存在则返回它的槽位索引。
### 3.3 系统初始化与全局 ID 获取
* `void System_Init(void)`
1. 初始化单片机系统寄存器WTST, EAXFR 等)。
2. 读取 STC32G 硬件全球唯一 ID (UID)。
3. 提取 UID 中的后 3 字节,并通过 `& 0x0FFFFF` 裁剪为 20 位 EV1527 源地址,赋值给全局变量 `bracelet_factory_id`。如果读取失败,则默认赋予 `0x37A86UL`
4. 载入数据库并配置 Timer1 和外设 GPIO 状态。