/** * @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