From d51dbb8ce31169f773e2c691fcaa194308fbb519 Mon Sep 17 00:00:00 2001 From: helei Date: Sat, 15 Aug 2026 06:45:49 +0800 Subject: [PATCH] =?UTF-8?q?V1.5:=20=E5=8A=9F=E7=8E=87=E9=9B=B6=E6=BC=82?= =?UTF-8?q?=E5=A4=84=E7=90=86(=E6=AD=BB=E5=8C=BA2W=E4=BB=A5=E4=B8=8B?= =?UTF-8?q?=E6=98=BE=E7=A4=BA0+=E8=B6=85=E8=BF=87=E5=90=8E=E5=87=8F0.5W?= =?UTF-8?q?=E5=81=8F=E7=A7=BB,=E5=AE=8FHLW=5FP=5FDEAD=5FW/HLW=5FP=5FZERO?= =?UTF-8?q?=5FW)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- V1.5/STM32F103_App1/HardWare/HLW8032/hlw8032.c | 4 +++- V1.5/STM32F103_App1/Inc/main.h | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/V1.5/STM32F103_App1/HardWare/HLW8032/hlw8032.c b/V1.5/STM32F103_App1/HardWare/HLW8032/hlw8032.c index c7dc462..2cb34bc 100644 --- a/V1.5/STM32F103_App1/HardWare/HLW8032/hlw8032.c +++ b/V1.5/STM32F103_App1/HardWare/HLW8032/hlw8032.c @@ -189,7 +189,9 @@ float hlw8032_get_current_a(void) float hlw8032_get_power_w(void) { if (!s_p_reg) return 0.0f; - return (float)((double)s_power_par / (double)s_p_reg * HLW_U_COEF * HLW_I_COEF); + float w = (float)((double)s_power_par / (double)s_p_reg * HLW_U_COEF * HLW_I_COEF); + if (w < HLW_P_DEAD_W) return 0.0f; /* 死区:空载噪声底显示 0 */ + return w - HLW_P_ZERO_W; } /*==== 在线判断:1s 内收到过有效帧 ====*/ diff --git a/V1.5/STM32F103_App1/Inc/main.h b/V1.5/STM32F103_App1/Inc/main.h index 8635c13..ada39da 100644 --- a/V1.5/STM32F103_App1/Inc/main.h +++ b/V1.5/STM32F103_App1/Inc/main.h @@ -72,6 +72,10 @@ extern UART_HandleTypeDef huart3; /* 电流零点偏移(A):空载时电流通道的零漂读数,显示时减去并钳位到 0。 * 换板子/换 CT 后空载看一下读数,按实际调整 */ #define HLW_I_ZERO_A 0.02f +/* 功率零漂处理:空载噪声底约 0.4~2W 且会跳动,单纯减偏移压不住尖峰。 + * 读数低于死区直接显示 0,高于死区再减去偏移 */ +#define HLW_P_DEAD_W 2.0f /* 功率死区(W):低于此值显示 0 */ +#define HLW_P_ZERO_W 0.5f /* 功率偏移(W):超过死区后减去 */ /*===== 蓝牙 GATT UUID 配置(透传服务)===== * BLE_UUID_CUSTOM = 1:上电把三个 UUID 设为下面的值(重启模块生效)。