IM1253E.h 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. /*********************************************************************************************************
  2. * 模块名称:IM1253E.h
  3. * 摘 要:电能测量芯片驱动应用
  4. * 当前版本:1.0.0
  5. * 作 者:anycrying
  6. * 完成日期:2024年04月09日
  7. * 内 容:
  8. * 注 意:
  9. **********************************************************************************************************
  10. * 取代版本:
  11. * 作 者:
  12. * 完成日期:
  13. * 修改内容:
  14. * 修改文件:
  15. *********************************************************************************************************/
  16. #ifndef __IM1253E_H
  17. #define __IM1253E_H
  18. #include "board_cnf.h"
  19. /*********************************************************************************************************
  20. * 包含头文件
  21. *********************************************************************************************************/
  22. #include "gd32e230x_conf.h"
  23. /*********************************************************************************************************
  24. * 宏定义
  25. *********************************************************************************************************/
  26. //IM1253E寄存器定义
  27. #define V_REG_ADDR 0x0048 //电压
  28. #define I_REG_ADDR 0x0049 //电流
  29. #define W_REG_ADDR 0x004A //有功功率
  30. #define KWh_REG_ADDR 0x004B //有功总电量
  31. #define Q_REG_ADDR 0x004C //功率因数
  32. #define CO2_REG_ADDR 0x004D //二氧化碳排量
  33. #define T_REG_ADDR 0x004E //温度
  34. #define Hz_REG_ADDR 0x004F //频率
  35. #define Ad_Bd_REG_ADDR 0x0004 //地址及波特率
  36. #define V_Unit 0.0001 //电压单位0.0001V
  37. #define I_Unit 0.0001 //电流单位0.0001A
  38. #define W_Unit 0.0001 //有功功率单位0.0001W
  39. #define KWh_Unit 0.0001 //有功总电量0.0001KWh
  40. #define Q_Unit 0.001 //功率因数单位0.001
  41. #define CO2_Unit 0.0001 //二氧化碳排量单位0.0001Kg
  42. #define T_Unit 0.01 //电压单位0.01℃
  43. #define Hz_Unit 0.01 //电压单位0.01Hz
  44. #define Device_addr_IM1253E 0x01 //IM1253E的地址
  45. #define cmd_read_IM1253E 0x03 //读一个或多个寄存器的值
  46. #define cmd_write_IM1253E 0x10 //写一个或多个寄存器的值
  47. /*********************************************************************************************************
  48. * 枚举结构体
  49. *********************************************************************************************************/
  50. /*********************************************************************************************************
  51. * API函数声明
  52. *********************************************************************************************************/
  53. uint16_t CRC_calculate_function(uint8_t len);
  54. void Read_IM1253E_REG(uint8_t dev_addr,uint16_t reg_addr,uint8_t len);
  55. void Write_IM1253E_REG(uint8_t dev_addr,uint16_t reg_addr,uint8_t *pt,uint8_t len);
  56. #if SUPPORT_STM32_ADC
  57. float read_voltage(uint8_t channel);
  58. #endif
  59. #endif