#ifndef __HLW8110_H #define __HLW8110_H #include "stdio.h" //8112/8110 reg define #define REG_SYSCON_ADDR 0x00 #define REG_EMUCON_ADDR 0x01 #define REG_HFCONST_ADDR 0x02 #define REG_EMUCON2_ADDR 0x13 #define REG_ANGLE_ADDR 0x22 //相角寄存器 #define REG_UFREQ_ADDR 0x23 //市电线性频率地址 #define REG_RMSIA_ADDR 0x24 #define REG_RMSIB_ADDR 0x25 #define REG_RMSU_ADDR 0x26 #define REG_PF_ADDR 0x27 #define REG_ENERGY_PA_ADDR 0x28 #define REG_ENERGY_PB_ADDR 0x29 #define REG_POWER_PA_ADDR 0x2C #define REG_POWER_PB_ADDR 0x2D #define REG_OVLVL_ADDR 0x19 #define REG_INT_ADDR 0x1D #define REG_IE_ADDR 0x40 #define REG_IF_ADDR 0x41 #define REG_RIF_ADDR 0x42 #define REG_RDATA_ADDR 0x44 #define REG_CHECKSUM_ADDR 0x6f #define REG_RMS_IAC_ADDR 0x70 #define REG_RMS_IBC_ADDR 0x71 #define REG_RMS_UC_ADDR 0x72 #define REG_POWER_PAC_ADDR 0x73 #define REG_POWER_PBC_ADDR 0x74 #define REG_POWER_SC_ADDR 0x75 #define REG_ENERGY_AC_ADDR 0x76 #define REG_ENERGY_BC_ADDR 0x77 //宏定义 #define FALSE 0 #define TRUE 1 #define D_TIME1_50MS 50 void Init_HLW8110(void); void Calculate_HLW8110_MeterData(void); void Clear_RxBuf(void); unsigned char HLW8110_checkSum_Write(unsigned char u8_Reg_length); unsigned char HLW8110_checkSum_Read(unsigned char u8_Reg_length); void Uart_HLW8110_WriteREG_EN(void); void Uart_HLW8110_WriteREG_DIS(void); void Uart_HLW8110_Set_Channel_A(void); void Uart_Read_HLW8110_Reg(unsigned char ADDR_Reg,unsigned char u8_reg_length); void Uart_Write_HLW8110_Reg(unsigned char ADDR_Reg,unsigned char u8_reg_length,unsigned long u32_data); void Uart_HLW8110_Reset(void); unsigned char Judge_CheckSum_HLW8110_Calfactor(void); void Init_HLW8110(void); void Check_WriteReg_Success(void); void Read_HLW8110_IA(void); void Read_HLW8110_U(void); void Read_HLW8110_PA(void); void Read_HLW8110_EA(void); void Read_HLW8110_LineFreq(void); void Read_HLW8110_PF(void); void Read_HLW8110_Angle(void); void Calculate_HLW8110_MeterData(void); void Init_HLW8112(void); void HLW8112_Measure(void); #endif