modbus_master.h 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  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 CS_POWER_ADDRESS_REGISTER 0x0014 // 电源地址
  15. #define JS_POWER_ADDRESS_REGISTER 1 // 电源地址
  16. #define CS_MODE_ADDRESS_REGISTER 0x0015 // 运行模式
  17. #define JS_MODE_ADDRESS_REGISTER 2 // 运行模式
  18. #define FAN_CS_SPEED_ADDRESS_REGISTER 0x0016 // 风机档位
  19. #define FAN_JS_SPEED_ADDRESS_REGISTER 0x0003 // 风机档位
  20. #define JS_MIN_HUMIDITY_ADDRESS_REGISTER 11 // 最小湿度
  21. #define JS_MAX_HUMIDITY_ADDRESS_REGISTER 12 // 最大湿度
  22. #define CS_SET_HUMIDITY_ADDRESS_REGISTER 0x0017 // 最大湿度
  23. #define JS_ERROR_CODE_ADDRESS_REGISTER 32 // 错误码
  24. #define CS_ERROR_CODE_ADDRESS_REGISTER 0x0007 // 错误码
  25. //低效滤网
  26. #define CS_INEFFICIENT_FILTER_SIGN_ADDRESS_REGISTER 0x0005
  27. //高效滤网
  28. #define CS_HEPA_FILTER_SIGN_ADDRESS_REGISTER 0x0006
  29. #define JS_EXTERNAL_HUMIDITY_ADDRESS_REGISTER 5
  30. #define JS_SELECT_POSITION_ADDRESS_REGISTER 10
  31. #define JS_MOULD_PROOF_MODE_TIME_ADDRESS_REGISTER 35
  32. //除湿机低效滤网寿命设置
  33. #define CS_INEFFICIENT_FILTER_SET_TIME 0x0018
  34. //除湿机高效滤网寿命设置
  35. #define CS_HEPA_FILTER_SET_TIME 0x0019
  36. //除湿机低效滤网使用时间
  37. #define CS_INEFFICIENT_FILTER_USED_TIME 0x000B
  38. //除湿机高效滤网使用时间
  39. #define CS_HEPA_FILTER_USED_TIME 0x000C
  40. //除湿机低效滤网重置
  41. #define CS_INEFFICIENT_FILTER_RESET 0x001A
  42. //除湿机高效滤网重置
  43. #define CS_HEPA_FILTER_RESET 0x001B
  44. // 定义协议 CID 表
  45. enum {
  46. // 开关机
  47. CID_CS_POWER = 0,
  48. CID_JS_POWER ,
  49. // 工作模式
  50. CID_CS_MODE,
  51. CID_JS_MODE,
  52. // 送风风速
  53. CID_CS_FAN_SPEED, // 送风风速
  54. CID_JS_FAN_SPEED,
  55. // 最小湿度
  56. CID_JS_MIN_HUMIDITY,
  57. // 最大湿度
  58. CID_JS_MAX_HUMIDITY,
  59. CID_CS_SET_HUMIDITY,
  60. // 故障码
  61. CID_CS_ERROR_CODE,
  62. CID_JS_ERROR_CODE,
  63. //低效滤网
  64. CID_CS_INEFFICIENT_FILTER_SIGN,
  65. //高效滤网
  66. CID_CS_HEPA_FILTER_SIGN,
  67. //给驾加湿模块写入的当前湿度
  68. CID_JS_EXTERNAL_HUMIDITY,
  69. //防霉模式时间mould_proof_mode
  70. CID_JS_MOULD_PROOF_MODE_TIME,
  71. //除湿机低效滤网寿命设置
  72. CID_CS_INEFFICIENT_FILTER_SET_TIME,
  73. //除湿机高效滤网寿命设置
  74. CID_CS_HEPA_FILTER_SET_TIME,
  75. //除湿机低效滤网使用时间
  76. CID_CS_INEFFICIENT_FILTER_USED_TIME,
  77. //除湿机高效滤网使用时间
  78. CID_CS_HEPA_FILTER_USED_TIME,
  79. //除湿机低效滤网重置
  80. CID_CS_INEFFICIENT_FILTER_RESET,
  81. //除湿机高效滤网寿命重置
  82. CID_CS_HEPA_FILTER_RESET,
  83. //预留
  84. CID_RESERVE,
  85. };
  86. void modbus_master_init();
  87. esp_err_t mm_set_param(uint16_t cid, uint8_t *value);
  88. esp_err_t mm_get_param(uint16_t cid, uint8_t *value) ;
  89. void modbus_master_destroy();
  90. #endif //WIRE_CONTROLLER_MODBUS_MASTER_H