/** * @Author: 李建 * @Date: 2024/8/13 10:38 * Description: 485从站,实现与线控器通讯 * Copyright: Copyright (©) 2024 永续绿建. All rights reserved. */ #ifndef FFX_BOARD_SLAVE_485_H #define FFX_BOARD_SLAVE_485_H #include "main.h" #define POWER_REG_ADDRESS 0x00 // 电源寄存器 #define FAN1_LEVEL_REG_ADDRESS 0x01 // 风阀1风速挡位 #define FAN2_LEVEL_REG_ADDRESS 0x02 // 风阀2风速挡位 #define FAN3_LEVEL_REG_ADDRESS 0x03 // 风阀3风速挡位 #define FAN4_LEVEL_REG_ADDRESS 0x04 // 风阀4风速挡位 #define FAN5_LEVEL_REG_ADDRESS 0x05 // 风阀5风速挡位 #define S_REG_HOLDING_START 0 #define S_REG_HOLDING_NREGS 16 typedef enum { // 网关通讯故障 ERR_GATEWAY = 1 << 2, // 线控器通讯故障 ERR_WIRE_CONTROLLER = 1 << 3, } err_code_t; /** * 设置故障码 * @param err */ void set_err_code(uint8_t err); /** * 清除故障码 * @param err */ void clear_err_code(uint8_t err); void set_gateway_err_code(uint8_t err); void clear_gateway_err_code(uint8_t err); # /** * 初始化485从站 */ void slave_485_init(uint8_t slave_id); /** * 设置寄存器值 * @param reg_address * @param reg_value */ void set_reg_value(uint8_t reg_address, uint16_t reg_value); /** * 获取寄存器数据 * @param reg_address * @param reg_value */ void get_reg_value(uint8_t reg_address, uint16_t *reg_value); uint16_t get_reg_value2(uint8_t reg_address); #endif //FFX_BOARD_SLAVE_485_H