Hlw8110.h 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. #ifndef __HLW8110_H
  2. #define __HLW8110_H
  3. #include "stdio.h"
  4. #define REG_SYSCON_ADDR 0x00
  5. #define REG_EMUCON_ADDR 0x01
  6. #define REG_HFCONST_ADDR 0x02
  7. #define REG_EMUCON2_ADDR 0x13
  8. #define REG_ANGLE_ADDR 0x22 //相角寄存器
  9. #define REG_UFREQ_ADDR 0x23 //市电线性频率地址
  10. #define REG_RMSIA_ADDR 0x24
  11. #define REG_RMSIB_ADDR 0x25
  12. #define REG_RMSU_ADDR 0x26
  13. #define REG_PF_ADDR 0x27
  14. #define REG_ENERGY_PA_ADDR 0x28
  15. #define REG_ENERGY_PB_ADDR 0x29
  16. #define REG_POWER_PA_ADDR 0x2C
  17. #define REG_POWER_PB_ADDR 0x2D
  18. #define REG_OVLVL_ADDR 0x19
  19. #define REG_INT_ADDR 0x1D
  20. #define REG_IE_ADDR 0x40
  21. #define REG_IF_ADDR 0x41
  22. #define REG_RIF_ADDR 0x42
  23. #define REG_RDATA_ADDR 0x44
  24. #define REG_CHECKSUM_ADDR 0x6f
  25. #define REG_RMS_IAC_ADDR 0x70
  26. #define REG_RMS_IBC_ADDR 0x71
  27. #define REG_RMS_UC_ADDR 0x72
  28. #define REG_POWER_PAC_ADDR 0x73
  29. #define REG_POWER_PBC_ADDR 0x74
  30. #define REG_POWER_SC_ADDR 0x75
  31. #define REG_ENERGY_AC_ADDR 0x76
  32. #define REG_ENERGY_BC_ADDR 0x77
  33. //宏定义
  34. #define FALSE 0
  35. #define TRUE 1
  36. #define D_TIME1_50MS 50
  37. void Init_HLW8110(void);
  38. void Calculate_HLW8110_MeterData(void);
  39. void Clear_RxBuf(void);
  40. unsigned char HLW8110_checkSum_Write(unsigned char u8_Reg_length);
  41. unsigned char HLW8110_checkSum_Read(unsigned char u8_Reg_length);
  42. void Uart_HLW8110_WriteREG_EN(void);
  43. void Uart_HLW8110_WriteREG_DIS(void);
  44. void Uart_HLW8110_Set_Channel_A(void);
  45. void Uart_Read_HLW8110_Reg(unsigned char ADDR_Reg,unsigned char u8_reg_length);
  46. void Uart_Write_HLW8110_Reg(unsigned char ADDR_Reg,unsigned char u8_reg_length,unsigned long u32_data);
  47. void Uart_HLW8110_Reset(void);
  48. unsigned char Judge_CheckSum_HLW8110_Calfactor(void);
  49. void Init_HLW8110(void);
  50. void Check_WriteReg_Success(void);
  51. void Read_HLW8110_IA(void);
  52. void Read_HLW8110_U(void);
  53. void Read_HLW8110_PA(void);
  54. void Read_HLW8110_EA(void);
  55. void Read_HLW8110_LineFreq(void);
  56. void Read_HLW8110_PF(void);
  57. void Read_HLW8110_Angle(void);
  58. void Calculate_HLW8110_MeterData(void);
  59. void Init_HLW8112(void);
  60. void HLW8112_Measure(void);
  61. void reinit_hlw8110(void);
  62. #endif