slave_485.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. /**
  2. * @Author: 李建
  3. * @Date: 2024/8/13 10:38
  4. * Description: 485从站,实现与线控器通讯
  5. * Copyright: Copyright (©) 2024 永续绿建. All rights reserved.
  6. */
  7. #ifndef FFX_BOARD_SLAVE_485_H
  8. #define FFX_BOARD_SLAVE_485_H
  9. #include "main.h"
  10. #define POWER_REG_ADDRESS 0x00 // 电源寄存器
  11. #define FAN1_LEVEL_REG_ADDRESS 0x01 // 风阀1风速挡位
  12. #define FAN2_LEVEL_REG_ADDRESS 0x02 // 风阀2风速挡位
  13. #define FAN3_LEVEL_REG_ADDRESS 0x03 // 风阀3风速挡位
  14. #define FAN4_LEVEL_REG_ADDRESS 0x04 // 风阀4风速挡位
  15. #define FAN5_LEVEL_REG_ADDRESS 0x05 // 风阀5风速挡位
  16. #define S_REG_HOLDING_START 0
  17. #define S_REG_HOLDING_NREGS 16
  18. typedef enum {
  19. // 网关通讯故障
  20. ERR_GATEWAY = 1 << 2,
  21. // 线控器通讯故障
  22. ERR_WIRE_CONTROLLER = 1 << 3,
  23. } err_code_t;
  24. /**
  25. * 设置故障码
  26. * @param err
  27. */
  28. void set_err_code(uint8_t err);
  29. /**
  30. * 清除故障码
  31. * @param err
  32. */
  33. void clear_err_code(uint8_t err);
  34. void set_gateway_err_code(uint8_t err);
  35. void clear_gateway_err_code(uint8_t err);
  36. #
  37. /**
  38. * 初始化485从站
  39. */
  40. void slave_485_init(uint8_t slave_id);
  41. /**
  42. * 设置寄存器值
  43. * @param reg_address
  44. * @param reg_value
  45. */
  46. void set_reg_value(uint8_t reg_address, uint16_t reg_value);
  47. /**
  48. * 获取寄存器数据
  49. * @param reg_address
  50. * @param reg_value
  51. */
  52. void get_reg_value(uint8_t reg_address, uint16_t *reg_value);
  53. uint16_t get_reg_value2(uint8_t reg_address);
  54. #endif //FFX_BOARD_SLAVE_485_H