modbus_slave.h 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. //
  2. // Created by DELL on 2024/10/18.
  3. //
  4. #ifndef GMV_GATEWAY_BOARD_MODBUS_SLAVE_H
  5. #define GMV_GATEWAY_BOARD_MODBUS_SLAVE_H
  6. #include "main.h"
  7. // 定义从机寄存器开始地址和长度
  8. #define S_REG_HOLDING_START 0
  9. #define S_REG_HOLDING_NREGS 30
  10. //#define COMMUNICATION_REG_ADDRESS 0 // 当前从机通讯地址
  11. #define POWER_REG_ADDRESS 0 // 电源地址
  12. #define WORK_MODE_REG_ADDRESS 1 // 运行模式
  13. #define FRESH_AIR_MODE_REG_ADDRESS 2 // 新风阀模式
  14. #define FAN_SPEED_REG_ADDRESS 4 // 风扇转速
  15. #define SET_TEMP_REG_ADDRESS 14 // 设定温度
  16. #define INNER_GROUP1_REG_ADDRESS 10 //内机机组1地址,1~8
  17. #define INNER_GROUP2_REG_ADDRESS 11 //内机机组2地址,9~16
  18. #define HUMP_ON_FFX_ADDRESS 17 // 加湿开启值
  19. #define HUMP_OFF_FFX_ADDRESS 18 // 加湿关闭值
  20. #define FRESH_AIR_REG_ADDRESS 19 // 新风机组站号
  21. #define INNER_ERROR1_REG_ADDRESS 20 //40021 格力网关485/CAN通信故障
  22. #define INNER_ERROR2_REG_ADDRESS 21 //40022 分风箱485通信故障
  23. #define INNER_ERROR3_REG_ADDRESS 22 //内机故障
  24. #define INNER_ERROR4_REG_ADDRESS 23 //新风机故障
  25. #define POWER_SYNC_REG_ADDRESS 24 // 内机电源同步寄存器
  26. #define SET_TEMP_SYNC_REG_ADDRESS 25 // 设置温度同步
  27. #define MODE_SYNC_REG_ADDRESS 26 // 模式同步寄存器
  28. #define FAN_SPEED_SYNC_REG_ADDRESS 27 // 风速挡位同步
  29. #define LED_ERROR_GPIO_Port GPIOB
  30. #define LED_ERROR_Pin GPIO_PIN_12 //
  31. /**
  32. * 开启485从机
  33. * @param address 从机地址
  34. */
  35. void start_485_slave(uint8_t address);
  36. /**
  37. * 设置故障位
  38. * @param offset 位偏移量
  39. */
  40. void set_err_code(uint8_t offset);
  41. /**
  42. * 清除故障位
  43. * @param offset 位偏移量
  44. */
  45. void clear_err_code(uint8_t offset);
  46. /**
  47. * 设置一个寄存器的值
  48. * @param regAddress
  49. */
  50. void set_reg_value(uint16_t regAddress, uint16_t value);
  51. /**
  52. * 读取一个寄存器的值
  53. * @param regAddress
  54. * @return
  55. */
  56. uint16_t get_reg_value(uint16_t regAddress);
  57. #endif //GMV_GATEWAY_BOARD_MODBUS_SLAVE_H