#include "air_valve.h" // 初始化 GPIO 引脚 void AirValve::initGPIO() { __HAL_RCC_GPIOE_CLK_ENABLE(); GPIO_InitTypeDef GPIO_InitStruct = {0}; GPIO_InitStruct.Pin = CLEANING_VALVE_PIN | NOZZLE_VALVE_PIN | DEHUMIDIFICATION_VALVE_PIN; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(CLEANING_VALVE_PORT, &GPIO_InitStruct); // 初始化时关闭所有阀门 closeCleaning(); closeNozzle(); closeDehumidification(); } // 构造函数,初始化 GPIO 端口和引脚 AirValve::AirValve() = default; // 打开清洗阀 void AirValve::openCleaning() { HAL_GPIO_WritePin(CLEANING_VALVE_PORT, CLEANING_VALVE_PIN, GPIO_PIN_RESET); } // 关闭清洗阀 void AirValve::closeCleaning() { HAL_GPIO_WritePin(CLEANING_VALVE_PORT, CLEANING_VALVE_PIN, GPIO_PIN_SET); } // 打开喷嘴阀 void AirValve::openNozzle() { HAL_GPIO_WritePin(NOZZLE_VALVE_PORT, NOZZLE_VALVE_PIN, GPIO_PIN_RESET); } // 关闭喷嘴阀 void AirValve::closeNozzle() { HAL_GPIO_WritePin(NOZZLE_VALVE_PORT, NOZZLE_VALVE_PIN, GPIO_PIN_SET); } // 打开除湿阀 void AirValve::openDehumidification() { HAL_GPIO_WritePin(DEHUMIDIFICATION_VALVE_PORT, DEHUMIDIFICATION_VALVE_PIN, GPIO_PIN_RESET); } // 关闭除湿阀 void AirValve::closeDehumidification() { HAL_GPIO_WritePin(DEHUMIDIFICATION_VALVE_PORT, DEHUMIDIFICATION_VALVE_PIN, GPIO_PIN_SET); }