1、低电 3.7V 只闪红灯不再 1 分钟后关机;电量低于约 5% 自动关机,未充电开机先闪 5 下红灯再睡回,只能充电后才能开机

2、自动/手动互相切换都闪 2 下灯;APP 发停止后再发自动模式可正常启动,手动残留停止不再挡住自动
3、自动模式 1~6 单次最长跑 10 分钟后回待机;关机时长按 12 秒进 OTA,OTA 期间红绿交替闪
This commit is contained in:
2026-08-27 10:20:48 +08:00
parent 3d445ae5c5
commit fdb43011b7
28 changed files with 945 additions and 165 deletions
+12 -5
View File
@@ -1,11 +1,15 @@
/******************************************************************************
* @file app_boot.h
* @brief 深睡唤醒 / 上电按键判定:3s 开机,5s 开机并配对,不足 3s 松手再睡
* @brief 深睡唤醒 / 上电按键判定:3s 开机,5s 配对12s OTA,不足 3s 松手再睡
* 开机前电量低于约 5% 且未充电时拒绝开机
* @author cyWu <1917507415@qq.com>
* @date 2026.08.25
* @version V1.0.0
* @date 2026.08.26
* @version V1.1.0
* @history
* - V1.0.0, 2026.08.25, cyWu, 从 usr_jb_main 拆出
* - V1.0.0, 2026.08.25, cyWu, 首次发布,实现深睡唤醒按键判定(3s 开机 / 5s 配对)
* - V1.1.0, 2026.08.26, cyWu, 新增 12s 长按进 OTA;新增开机前低电量
* BOARD_VBAT_SHUTDOWN_MV)拦截,仅闪 5 下红灯
* 提示后继续深睡,不接受非充电状态下的开机
*
* @note 必须在 BLE 协议栈起来、1ms 定时器启动之前调用。杰理 jiffies 此时
* 往往 10ms 才跳一次,所以内部一律用 timer_get_ms 直接量时间,
@@ -17,7 +21,10 @@
/**
* @brief 等待并判定开机按键:不足 3s 松手、或全程未按键,直接原地深睡(不返回);
* 满 3s 视为正常开机; 5s 视为开机并进入配对(内部会调用 app_pair_start
* 满 3s 视为正常开机;松手时已过 5s 视为开机并进入配对(内部会调用
* app_pair_start);持续按满 12s 直接开机并进入 OTA(调用
* usr_app_ota_init)。若未充电且电量低于约 5%,则闪 5 下红灯后
* 继续深睡,拒绝开机。
* @return 无(深睡分支通过 while(1) 喂狗不返回;其余情况正常返回)
*/
void app_boot_wait_key(void);