You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
#ifndef THREE_WAY_VALVE_H
#define THREE_WAY_VALVE_H
#include <stm32f4xx_hal.h>
// 定义三通阀控制和检测相关的引脚
#define POWER_OUT_PIN GPIO_PIN_4 // 三通阀供电
#define POWER_OUT_PORT GPIOE
#define VT_OUT_PIN GPIO_PIN_11 // 三通阀 VT 管脚
#define VT_OUT_PORT GPIOE
#define INT_1_PIN GPIO_PIN_9 // 对应三通阀 OUT1
#define INT_1_PORT GPIOF
#define INT_2_PIN GPIO_PIN_10 // 对应三通阀 OUT2
#define INT_2_PORT GPIOF
#define READ_FLIP 0 // read 电平反转
/**
* 控制 * VT H ON_C * VT L OFF_C * * 反馈状态 * INT_2 INT_1 状态 * L H ON_C * H L OFF_C */
class ThreeWayValve { public: enum ValveMode { ON_C = 0x00, // ON 连通 上电
OFF_C = 0x01, // OFF 连通 断电
ON_OFF_NC = 0x02 // ON OFF 关闭
};
ThreeWayValve();
// 初始化 GPIO 引脚
void initGPIO();
// 设置模式
void setMode(ValveMode mode);
// 获取模式
ValveMode getMode();
void powerOn(); void powerOff();
private:
// 设置 触发电压使能
void setVtEnable(bool enable);
// true 高电平 false 低电平
bool getVOUT1State();
// true 高电平 false 低电平
bool getVOUT2State(); };
#endif // THREE_WAY_VALVE_H
|