1、运行中空电关机改看显示百分比,到 5% 立刻停电机、关绿灯,红灯闪 5 下后再深睡,避免电压先掉、APP 还没到 5% 就关机

2、充电/放电电量缓冲加快,放电突变拦截先关掉,电量曲线满电点收到 4.12V
3、上电串口打印软硬件版本和编译时间
This commit is contained in:
2026-08-27 11:40:57 +08:00
parent fdb43011b7
commit 215e1be6bb
10 changed files with 205 additions and 68 deletions
+6 -6
View File
@@ -21,8 +21,8 @@
/*========================= 时间/阈值配置 =========================*/
#define BAT_SWITCH_WAIT_CHARGE_MS 60000u /**< 切到充电后等 60s 才记基准 */
#define BAT_SWITCH_WAIT_DISCHARGE_MS 60000u /**< 切到放电后等 60s 才记基准 */
#define BAT_CHARGE_BUFFER_MS 60000u /**< 充电缓冲:1 分钟走 1% */
#define BAT_DISCHARGE_BUFFER_MS 20000u /**< 放电缓冲:20 秒走 1% */
#define BAT_CHARGE_BUFFER_MS 40000u /**< 充电缓冲:40 秒走 1% */
#define BAT_DISCHARGE_BUFFER_MS 10000u /**< 放电缓冲:10 秒走 1% */
#define BAT_DISCHARGE_FILTER_W 90 /**< 放电指数滤波权重(/100),压掉电机拉载噪声 */
#define BAT_SUDDEN_DROP_PCT 1 /**< 突变阈值:单次超过 1% 判定为突变 */
#define BAT_DROP_RECOVERY_MS 60000u /**< 突变超过此时长强制接受新电量 */
@@ -213,10 +213,10 @@ void app_battery_tick(uint16_t dt, uint16_t mv, uint8_t charging)
}
target = (uint8_t)new_percent;
/* 放电时单次跳变过大先当噪声,稳住后再更新 */
if (!b->charging && battery_check_sudden_drop(dt, target)) {
return;
}
// /* 放电时单次跳变过大先当噪声,稳住后再更新 */
// if (!b->charging && battery_check_sudden_drop(dt, target)) {
// return;
// }
if (target != b->target_percent) {
b->target_percent = target;