# 断电保护固件 - 使用文档 ## 通信接口 设备同时启用 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置高)