20 lines
886 B
C
20 lines
886 B
C
#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(断电预警/计划复位前调用) */
|
||
float hlw8032_get_energy_kwh(void); /* 累计电量 kWh(未收到帧前为 0) */
|
||
uint8_t hlw8032_online(void); /* 最近 1s 内收到过有效帧 */
|
||
|
||
#endif /* __HLW8032_H */
|