From b307ba2e16ae3cb4c9b6d991062785006af8d149 Mon Sep 17 00:00:00 2001 From: helei Date: Sat, 15 Aug 2026 06:43:55 +0800 Subject: [PATCH] =?UTF-8?q?V1.5:=20=E7=94=B5=E6=B5=81=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E5=87=8F=E9=9B=B6=E7=82=B9=E5=81=8F=E7=A7=BB(main.h=E5=AE=8FHL?= =?UTF-8?q?W=5FI=5FZERO=5FA=3D0.02A)=E5=B9=B6=E9=92=B3=E4=BD=8D=E5=88=B00?= 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 | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/V1.5/STM32F103_App1/HardWare/HLW8032/hlw8032.c b/V1.5/STM32F103_App1/HardWare/HLW8032/hlw8032.c index eec74a3..c7dc462 100644 --- a/V1.5/STM32F103_App1/HardWare/HLW8032/hlw8032.c +++ b/V1.5/STM32F103_App1/HardWare/HLW8032/hlw8032.c @@ -181,7 +181,9 @@ float hlw8032_get_voltage_v(void) float hlw8032_get_current_a(void) { if (!s_i_reg) return 0.0f; - return (float)((double)s_i_par / (double)s_i_reg * HLW_I_COEF); + float a = (float)((double)s_i_par / (double)s_i_reg * HLW_I_COEF); + a -= HLW_I_ZERO_A; /* 减零点偏移 */ + return a > 0.0f ? a : 0.0f; /* 钳位到 0 */ } float hlw8032_get_power_w(void) diff --git a/V1.5/STM32F103_App1/Inc/main.h b/V1.5/STM32F103_App1/Inc/main.h index c2681fa..8635c13 100644 --- a/V1.5/STM32F103_App1/Inc/main.h +++ b/V1.5/STM32F103_App1/Inc/main.h @@ -69,6 +69,9 @@ extern UART_HandleTypeDef huart3; * 改电阻/互感器只需改这两个宏(公式见 HLW8032 手册电量计算一节) */ #define HLW_U_COEF 2.004f #define HLW_I_COEF 0.5f +/* 电流零点偏移(A):空载时电流通道的零漂读数,显示时减去并钳位到 0。 + * 换板子/换 CT 后空载看一下读数,按实际调整 */ +#define HLW_I_ZERO_A 0.02f /*===== 蓝牙 GATT UUID 配置(透传服务)===== * BLE_UUID_CUSTOM = 1:上电把三个 UUID 设为下面的值(重启模块生效)。