modbus_master.h 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. /**
  2. * @Author: 李建
  3. * @Date: 2025/4/27 15:35
  4. * Description: 485主站
  5. * Copyright: Copyright (©) 2025 永续绿建. All rights reserved.
  6. */
  7. #ifndef WIRE_CONTROLLER_MODBUS_MASTER_H
  8. #define WIRE_CONTROLLER_MODBUS_MASTER_H
  9. #include "esp_err.h"
  10. #define MB_PORT_NUM 2 // Number of UART port used for Modbus connection
  11. #define MB_DEV_SPEED 9600 // The communication speed of the UART
  12. #define MB_GPIO_RX 2 // uart rx gpio port
  13. #define MB_GPIO_TX 1 // uart tx gpio port
  14. #define POWER_ADDRESS_REGISTER 1 // 电源地址
  15. #define MODE_ADDRESS_REGISTER 2 // 运行模式
  16. #define FAN_SPEED_ADDRESS_REGISTER 3 // 风机档位
  17. #define EXTERNAL_TEMPERATURE_ADDRESS_REGISTER 4 // 外部传感器温度
  18. #define EXTERNAL_HUMIDITY_ADDRESS_REGISTER 5 // 外部传感器湿度
  19. #define RETURN_AIR_TEMPERATURE_ADDRESS_REGISTER 6 // 回风温度
  20. #define RETURN_AIR_HUMIDITY_ADDRESS_REGISTER 7 // 回风湿度
  21. #define RETURN_AIR_PM25_ADDRESS_REGISTER 8 // 回风PM2.5
  22. #define RETURN_AIR_CO2_ADDRESS_REGISTER 9 // 回风CO2
  23. #define SELECT_POSITION_ADDRESS_REGISTER 10 // 选择位置
  24. #define MIN_HUMIDITY_ADDRESS_REGISTER 11 // 最小湿度
  25. #define MAX_HUMIDITY_ADDRESS_REGISTER 12 // 最大湿度
  26. #define AIR_FIRST_VOL_ADDRESS_REGISTER 13 // 低
  27. #define AIR_SECOND_VOL_ADDRESS_REGISTER 14 // 中
  28. #define AIR_THIRD_VOL_ADDRESS_REGISTER 15 // 高
  29. #define ERROR_CODE_ADDRESS_REGISTER 32 // 错误码
  30. // 定义协议 CID 表
  31. enum {
  32. // 开关机
  33. CID_POWER = 0,
  34. // 工作模式
  35. CID_MODE,
  36. // 送风风速
  37. CID_FAN_SPEED,
  38. // 外部温度
  39. CID_EXTERNAL_TEMPERATURE,
  40. // 外部湿度
  41. CID_EXTERNAL_HUMIDITY,
  42. // 回风湿度
  43. CID_RETURN_AIR_TEMPERATURE,
  44. // 回风湿度
  45. CID_RETURN_AIR_HUMIDITY,
  46. // 回风PM2.5
  47. CID_RETURN_AIR_PM25,
  48. // 回风CO2
  49. CID_RETURN_AIR_CO2,
  50. // 选择位置
  51. CID_SELECT_POSITION,
  52. // 最小湿度
  53. CID_MIN_HUMIDITY,
  54. // 最大湿度
  55. CID_MAX_HUMIDITY,
  56. // 排风一档
  57. CID_AIR_EXHAUST_FIRST_VOL,
  58. // 排风二档
  59. CID_AIR_EXHAUST_SECOND_VOL,
  60. // 排风三档
  61. CID_AIR_EXHAUST_THIRD_VOL,
  62. // 排风四档
  63. CID_AIR_EXHAUST_FOURTH_VOL,
  64. // 排风五档
  65. CID_AIR_EXHAUST_FIFTH_VOL,
  66. // 送风一档
  67. CID_AIR_SUPPLY_FIRST_VOL,
  68. // 送风二档
  69. CID_AIR_SUPPLY_SECOND_VOL,
  70. // 送风三档
  71. CID_AIR_SUPPLY_THIRD_VOL,
  72. // 送风四档
  73. CID_AIR_SUPPLY_FOURTH_VOL,
  74. // 送风五档
  75. CID_AIR_SUPPLY_FIFTH_VOL,
  76. // 故障码
  77. CID_ERROR_CODE,
  78. //预留
  79. CID_RESERVE,
  80. };
  81. void modbus_master_init();
  82. esp_err_t mm_set_param(uint16_t cid, uint8_t *value);
  83. esp_err_t mm_get_param(uint16_t cid, uint8_t *value) ;
  84. void modbus_master_destroy();
  85. #endif //WIRE_CONTROLLER_MODBUS_MASTER_H