first commit

This commit is contained in:
zhaohengze
2026-05-14 17:53:52 +08:00
commit e1ffcf2e7d
156 changed files with 109026 additions and 0 deletions

View File

@ -0,0 +1,41 @@
# 断电保护固件 - 使用文档
## 通信接口
设备同时启用 USART1 串口和 USB CDC 虚拟串口,上电后两个接口都在监听。哪个接口先收到 `start` 指令,后续通信就使用哪个接口:
| 接口 | 连接方式 | 接收方式 |
|------|----------|----------|
| USART1 串口 | PA9(TX) / PA10(RX)115200 8N1 | 中断接收 |
| USB CDC 虚拟串口 | PA11(DM) / PA12(DP)USB口 | 轮询接收 |
> **举例:** 上位机通过USB连接发送 `start\r\n`设备识别为USB模式后续所有 `Alive`、`SHUTDOWN` 等消息都通过USB发送`blive`、`ok` 等回复也只从USB接收。如果通过串口先发了 `start`,则全程走串口。
---
## 通信协议
| 指令 | 方向 | 说明 |
|------|------|------|
| `start` | 上位机 → 设备 | 启动监控(设备上电后等待此指令才开始工作) |
| `Alive` | 设备 → 上位机 | 心跳包表示12V电源正常 |
| `blive` | 上位机 → 设备 | 心跳回复,表示上位机在线 |
| `SHUTDOWN` | 设备 → 上位机 | 12V电源丢失设备即将断电 |
| `ok` | 上位机 → 设备 | 确认收到关机通知 |
所有指令以 `\r\n` 结尾。
---
## 工作流程
1. 设备上电初始化串口和USB同时监听等待上位机发送 `start`
2. 收到 `start` 后锁定该接口,进入监控循环:
- 检测 Main12V_In 引脚PB7
- 12V正常时发送 `Alive`,等待上位机回复 `blive`5秒超时
- 12V丢失时连续检测10次仍丢失则进入关机流程
3. 关机流程:
- RUN灯灭PB5置高
- SHUT拉低PB4触发关机
- 发送 `SHUTDOWN`,等待上位机回复 `ok`,若一分钟之后未收到,则直接关机
- 延时10秒后断开继电器PB6置高