123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 |
- /**
- * @Author: 李建
- * @Date: 2025/4/27 15:35
- * Description: 485主站
- * Copyright: Copyright (©) 2025 永续绿建. All rights reserved.
- */
- #ifndef WIRE_CONTROLLER_MODBUS_MASTER_H
- #define WIRE_CONTROLLER_MODBUS_MASTER_H
- #include "esp_err.h"
- #include "esp_modbus_master.h"
- #define MB_PORT_NUM 2 // Number of UART port used for Modbus connection
- #define MB_DEV_SPEED 9600 // The communication speed of the UART
- #define MB_GPIO_RX 2 // uart rx gpio port
- #define MB_GPIO_TX 1 // uart tx gpio port
- #define POWER_REG_ADDRESS 0x00 // 电源寄存器
- #define WORK_MOD_REG_ADDRESS 0x01 // 工作模式寄存器
- #define FAN_MODE_REG_ADDRESS 0x02 // 新风模式(0x01通风模式0x02新风模式)
- #define FAN_LEVEL_REG_ADDRESS 0x04 // 风速档位
- #define CHS_TYPE_REG_ADDRESS 0xB // 冷热源类型
- #define FAN_VALVE_1_REG_ADDRESS 0x07 // 风阀一开度
- #define FAN_VALVE_2_REG_ADDRESS 0x08 // 风阀二开度
- #define FAN_VALVE_3_REG_ADDRESS 0x09 // 风阀三开度
- #define FAN_VALVE_4_REG_ADDRESS 0x0A // 风阀四开度
- #define FAN_VALVE_5_REG_ADDRESS 0x43 // 风阀五开度
- #define FAN_VALVE_6_REG_ADDRESS 0x44 // 风阀六开度
- #define PM25_NUMBER_REG_ADDRESS 0x23 // PM2.5浓度
- #define CO2_NUMBER_REG_ADDRESS 0x24 // CO2浓度
- #define HUMIDITY_LIMIT_LOW_REG_ADDRESS 0x11
- #define HUMIDITY_LIMIT_HIGH_REG_ADDRESS 0x12
- // 电压一档寄存器地址
- #define VOLTAGE_1_REG_ADDRESS 0x15
- #define VOLTAGE_2_REG_ADDRESS 0x16
- #define VOLTAGE_3_REG_ADDRESS 0x17
- #define VOLTAGE_4_REG_ADDRESS 0x18
- #define VOLTAGE_5_REG_ADDRESS 0x19
- #define SET_TEMP_REG_ADDRESS 0x0E // 设置温度
- #define ENV_TEMP_REG_ADDRESS 0x1B // 环境温度
- #define ENV_HUMIDITY_REG_ADDRESS 0x1C // 环境湿度
- #define BOARD_ERR_REG_ADDRESS 0x2D // 错误码
- #define GMV_INTERNAL_NUMBER_REG_ADDRESS 0x59 // 多联机内机编号
- #define INTERNAL_ERR_REG_ADDRESS 0x39 // 内机错误码
- #define FG_ERR_2_REG_ADDRESS 0x3A // FG故障码
- #define FG_ERR_3_REG_ADDRESS 0x3B // FG故障码
- #define FG_ERR_4_REG_ADDRESS 0x3C // FG故障码
- #define FG_ERR_5_REG_ADDRESS 0x3D // FG故障码
- #define FG_ERR_6_REG_ADDRESS 0x3E // FG故障码
- #define FG_ERR_7_REG_ADDRESS 0x3F // FG故障码
- #define FG_ERR_8_REG_ADDRESS 0x40 // FG故障码
- #define FG_ERR_9_REG_ADDRESS 0x41 // FG故障码
- #define FG_ERR_10_REG_ADDRESS 0x42 // FG故障码
- #define FG_ERR_11_REG_ADDRESS 0x43 // FG故障码
- #define FG_ERR_12_REG_ADDRESS 0x44 // FG故障码
- #define FG_ERR_13_REG_ADDRESS 0x45 // FG故障码
- #define FG_ERR_14_REG_ADDRESS 0x46 // FG故障码
- #define INNER_2_POWER_REG_ADDRESS 0x78 // 内机二电源状态
- #define INNER_2_MODE_REG_ADDRESS 0x79 // 内机二工作模式
- #define INNER_2_SET_TEMP_REG_ADDRESS 0x7A // 内机二设定温度
- #define INNER_2_FAN_LEVEL_REG_ADDRESS 0x7B // 内机二风速档位
- #define INNER_3_POWER_REG_ADDRESS 0x7C // 内机三电源状态
- #define INNER_3_MODE_REG_ADDRESS 0x7D // 内机三工作模式
- #define INNER_3_SET_TEMP_REG_ADDRESS 0x7E // 内机三设定温度
- #define INNER_3_FAN_LEVEL_REG_ADDRESS 0x7F // 内机三风速档位
- // 定义协议 CID 表
- enum {
- // 开关机
- CID_POWER = 0,
- // 工作模式
- CID_MODE,
- // 新风阀模式
- CID_FAN_MODE,
- // 送风风速
- CID_FAN_SPEED,
- // 风阀一开度
- CID_FAN_1_DEGREE,
- // 风阀二开度
- CID_FAN_2_DEGREE,
- // 风阀三开度
- CID_FAN_3_DEGREE,
- // 风阀四开度
- CID_FAN_4_DEGREE,
- // 风阀五开度
- CID_FAN_5_DEGREE,
- // 设定温度
- CID_SET_TEMP,
- // 电压一档
- CID_VOLTAGE_1,
- // 电压二档
- CID_VOLTAGE_2,
- // 电压三档
- CID_VOLTAGE_3,
- // 电压四档
- CID_VOLTAGE_4,
- // 电压五档
- CID_VOLTAGE_5,
- // 线控器处环境温度
- CID_ENV_TEMP,
- // 线控器处环境湿度
- CID_ENV_HUMIDITY,
- // PM2.5浓度
- CID_PM25,
- // CO2浓度
- CID_CO2,
- // 多联机内机地址
- CID_INNER_ADDR,
- // 驱动板故障类
- CID_FAULT_CODE,
- // 故障12
- CID_FAULT_12,
- // 故障13
- CID_FAULT_13,
- // 故障15
- CID_FAULT_15,
- // 故障19
- CID_FAULT_19,
- // 故障20
- CID_FAULT_20,
- // 故障21
- CID_FAULT_21,
- // 故障22
- CID_FAULT_22,
- // 故障23
- CID_FAULT_23,
- // 故障24
- CID_FAULT_24,
- // 故障26
- CID_FAULT_26,
- };
- void modbus_master_init();
- esp_err_t mm_set_param(uint16_t cid, uint8_t *value);
- /**
- * 发送 modbus 请求
- * @param request
- * @param data_prt
- * @return
- */
- esp_err_t send_request(mb_param_request_t * request, void * data_prt);
- void modbus_master_destroy();
- #endif //WIRE_CONTROLLER_MODBUS_MASTER_H
|