#include "by_fan_control.h" #include "zf_common_headfile.h" #define Fan_pwm_up1 TIM8_PWM_MAP0_CH1_C6 #define Fan_pwm_up2 TIM8_PWM_MAP0_CH2_C7 #define Fan_pwm_power1 TIM4_PWM_MAP1_CH3_D14 #define Fan_pwm_power2 TIM4_PWM_MAP1_CH4_D15 #define Fan_pwm_power3 TIM4_PWM_MAP1_CH2_D13 #define Fan_pwm_power4 TIM4_PWM_MAP1_CH1_D12 uint32_t myclip(uint32_t x, uint32_t low, uint32_t up) { return (x > up ? up : x < low ? low : x); } void by_pwm_init(void) { pwm_init(Fan_pwm_up1, 50, 500); // 浮力风扇左 pwm_init(Fan_pwm_up2, 50, 500); // 浮力风扇右 pwm_init(Fan_pwm_power1, 50, 500); // 动力风扇左1 pwm_init(Fan_pwm_power2, 50, 500); // 动力风扇右1 pwm_init(Fan_pwm_power3, 50, 500); // 动力风扇左2 pwm_init(Fan_pwm_power4, 50, 500); // 动力风扇右2 // system_delay_ms(3000); // // pwm_init(Fan_pwm_power1, 50, 1000); // 动力风扇左1 // // pwm_init(Fan_pwm_power2, 50, 1000); // 动力风扇右1 // // pwm_init(Fan_pwm_power3, 50, 1000); // 动力风扇左2 // // pwm_init(Fan_pwm_power4, 50, 1000); // 动力风扇右2 // // system_delay_ms(5000); // pwm_set_duty(Fan_pwm_power1, 600); // pwm_set_duty(Fan_pwm_power2, 600); // pwm_set_duty(Fan_pwm_power3, 600); // pwm_set_duty(Fan_pwm_power4, 600); // while(1); } void by_pwm_update_duty(uint32_t update_pwm_duty1, uint32_t update_pwm_duty2) { update_pwm_duty1=myclip(update_pwm_duty1, 500, 900); update_pwm_duty2=myclip(update_pwm_duty2, 500, 900); pwm_set_duty(Fan_pwm_up1, update_pwm_duty1); pwm_set_duty(Fan_pwm_up2, update_pwm_duty2); } /** * @brief * * @param power_pwm_duty_l1 左转向风扇 * @param power_pwm_duty_r1 右转向风扇 * @param power_pwm_duty_l2 左驱动风扇 * @param power_pwm_duty_r2 右驱动风扇 */ void by_pwm_power_duty(uint32_t power_pwm_duty_l1, uint32_t power_pwm_duty_r1, uint32_t power_pwm_duty_l2, uint32_t power_pwm_duty_r2) { power_pwm_duty_l1=myclip(power_pwm_duty_l1, 500, 900); power_pwm_duty_r1=myclip(power_pwm_duty_r1, 500, 900); power_pwm_duty_l2=myclip(power_pwm_duty_l2, 500, 900); power_pwm_duty_r2=myclip(power_pwm_duty_r2, 500, 900); pwm_set_duty(Fan_pwm_power1, power_pwm_duty_l1); pwm_set_duty(Fan_pwm_power2, power_pwm_duty_r1); pwm_set_duty(Fan_pwm_power3, power_pwm_duty_l2); pwm_set_duty(Fan_pwm_power4, power_pwm_duty_r2); }