diff --git a/src/board/hardware.cpp b/src/board/hardware.cpp index 672e058..2491ffd 100644 --- a/src/board/hardware.cpp +++ b/src/board/hardware.cpp @@ -239,13 +239,9 @@ void Hardware::fan_periodicJob() { /******************************************************************************* * 帕尔贴 * *******************************************************************************/ -void Hardware::peltier_cold_ctr_pwm(int pwm) { - STM32_HAL::setPWMDuty(&htim1, TIM_CHANNEL_1, pwm); -} +void Hardware::peltier_cold_ctr_pwm(int pwm) { STM32_HAL::setPWMDuty(&htim1, TIM_CHANNEL_1, pwm); } // PB0 HOT_CTR_PWM0 -void Hardware::peltier_hot_ctr_pwm(int pwm) { - STM32_HAL::setPWMDuty(&htim3, TIM_CHANNEL_3, pwm); -} +void Hardware::peltier_hot_ctr_pwm(int pwm) { STM32_HAL::setPWMDuty(&htim3, TIM_CHANNEL_3, pwm); } void Hardware::peltier_init() { // STM32_HAL::gpioInitAsOutput(GPIOB, GPIO_PIN_1, GPIO_MODE_OUTPUT_PP, GPIO_PULLUP, GPIO_SPEED_FREQ_LOW, GPIO_PIN_RESET); STM32_HAL::gpioInitAsOutput(GPIOE, GPIO_PIN_10, GPIO_MODE_OUTPUT_PP, GPIO_PULLUP, GPIO_SPEED_FREQ_LOW, GPIO_PIN_RESET); @@ -274,6 +270,12 @@ void Hardware::peltier_set_pwm(int pwm) { * COLD_CTR_PWM0(BL) = 1(PWM) * COLD_CTR(BH) = 0 */ + if (m_peltier.pwm * pwm < 0) { + peltier_hot_ctr_pwm(0); /*HOT_CTR_PWM0*/ + HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_RESET); /*HOT_CTR*/ + peltier_cold_ctr_pwm(0); /*COLD_CTR_PWM0*/ + HAL_GPIO_WritePin(GPIOE, GPIO_PIN_10, GPIO_PIN_RESET); /*COLD_CTR*/ + } m_peltier.pwm = pwm; if (pwm == 0) { peltier_hot_ctr_pwm(0); /*HOT_CTR_PWM0*/