#ifndef __HLW8032_H #define __HLW8032_H #include "main.h" /* HLW8032 电量计量模块 * 接线:芯片 TXD -> 单片机 PD2 (UART5_RX),光耦隔离;芯片 RX 预留不用。 * 通信:4800bps 8E1,芯片每 50ms 主动上报一帧 24 字节,只收不发。 * 本模块只取 PF 脉冲计数换算累计电量(kWh),电压/电流/功率寄存器忽略。 * 累计脉冲数持久化在 EEPROM(164~171, uint64),定期 + 断电前保存。 */ void hlw8032_init(void); /* UART5 初始化 + EEPROM 恢复累计(app_init 调用) */ void hlw8032_rx_byte(uint8_t b); /* UART5 中断逐字节喂入(uart.c 接收回调调用) */ void hlw8032_tick(void); /* 1s 周期:到阈值就把累计脉冲写 EEPROM */ void hlw8032_save(void); /* 立即写 EEPROM(断电预警/计划复位前调用) */ void hlw8032_clear(void); /* 累计电量清零并落盘(蓝牙 ENCLR 命令) */ float hlw8032_get_energy_kwh(void); /* 累计电量 kWh(未收到帧前为 0) */ float hlw8032_get_voltage_v(void); /* 电压有效值 V(调试显示用) */ float hlw8032_get_current_a(void); /* 电流有效值 A */ float hlw8032_get_power_w(void); /* 有功功率 W */ uint8_t hlw8032_online(void); /* 最近 1s 内收到过有效帧 */ #endif /* __HLW8032_H */