shuichan_new/STM32F103_App1/HardWare/HLW8032/hlw8032.h

24 lines
1.1 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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 */