Files
RS485_10VRLY/Source/SYSTEM/inc/control_rly.h
yeyangwen c05052b637 feat:提交0_10V温控继电器固件
feat:提交0_10V温控继电器固件
2026-04-02 16:39:09 +08:00

108 lines
2.7 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#ifndef _RLY_CONTROL_H_
#define _RLY_CONTROL_H_
#include "apt32f102.h"
#include "apt32f102_gpio.h"
#define A9EXPANDTYPE 0x0E//14 //A9RELAY类型
#define CMD_SET_RLYSTATE 0x20 //设置继电器状态
#define CMD_READ_RLYSTATE 0x24 //读取继电器状态
#define CMD_SET_WINDOUTVOL 0x27 //设置各个档位的电压输出0-10000mV
#define CMD_READ_WINDOUTVOL 0x29 //读取各个档位的电压输出0-10000mV
#define CMD_SET_DEVPORT 0x28 //设置端口模式
#define CMD_READ_DEVPORT 0x2A //读取端口模式
#define CMD_SET_RLYSTATE_REPLY 0x30 //回复 -- 设置继电器状态
#define CMD_READ_RLYSTATE_REPLY 0x34 //回复 -- 读取继电器状态
#define CMD_SET_WINDOUTVOL_REPLY 0x37 //回复 -- 设置各个档位的电压输出0-10000mV
#define CMD_READ_WINDOUTVOL_REPLY 0x39 //回复 -- 读取各个档位的电压输出0-10000mV
#define CMD_SET_DEVPORT_REPLY 0x38 //回复 -- 设置端口模式
#define CMD_READ_DEVPORT_REPLY 0x3A //回复 -- 读取端口模式
#define RLY_1_OPEN GPIO_Write_High(GPIOA0,13);
#define RLY_1_CLOSE GPIO_Write_Low(GPIOA0,13);
#define RLY_2_OPEN GPIO_Write_High(GPIOA0,12);
#define RLY_2_CLOSE GPIO_Write_Low(GPIOA0,12);
#define WIND_LOW 0x01
#define WIND_MID 0x02
#define WIND_HIGH 0x03
#define WIND_STOP 0x00
#define Control_OFF 0x00 //继电器
#define Control_ON 0x01 //
#define Cnotrol_RES 0x02
#define ACTIVE_PORT 0x02 //主动端口
#define POLLING_PORT 0x01 //轮训端口
//继电器数量
typedef enum{
CTRL_RLY1 = 0x00,
CTRL_RLY2,
WINDRLY_LOW,
WINDRLY_MID,
WINDRLY_HIGH,
RLY_MAX,
}RLY_g;
//继电器控制状态
typedef enum{
NO_CTRL = 0x00, //继电器不控制
RLY_OFF, //继电器关闭
RLY_ON, //继电器打开
RLY_RES, //继电器翻转
}RLY_CTRL_g;
typedef enum{
SEND_ADDR1 = 0x00,
SEND_SN,
SEND_TYPE,
SEND_ADDR2,
SEND_LEN,
SEND_SUM,
SEND_CMD,
SEND_PARA,
}RECV_g;
typedef struct{
U8_T rly_control; //继电器控制标志位0x00不控制继电器0x01直接控制
U8_T rly_state[RLY_MAX]; //存储继电器状态Control_ONControl_OFF
U8_T rly_ctrl_state[RLY_MAX];
U8_T dev_port; //端口模式0x01,轮询0x02,主动
U8_T SN;
U8_T wind;
U8_T wind_last;
U16_T wind_STOP_vol;
U16_T wind_LOW_vol; //低风速电压记录,0-10000mV
U16_T wind_MID_vol;
U16_T wind_HIGH_vol;
}ZERO_CTRL_RLY;
extern ZERO_CTRL_RLY c_rly;
void Relay_Init(void);
void BLV_RLY_Ctrl_Purpose(U8_T rly_id,U8_T state);
U8_T CheckSum(U8_T *data,U16_T len);
U8_T CheckSum2(U8_T *data,U16_T len);
U8_T BLV_RLY_RS485_Pro(U8_T *RecData, U16_T Len);
void BLV_RLY_Task(void);
U8_T Change_OUTV(U16_T VolOut);
void CTRL_LEDStatus_Task(void);
#endif