// 开启pwm中断
HAL_TIM_PWM_Start_IT(&htim2, TIM_CHANNEL_4);
// 72M/((999+1)*(71+1))= 1000Hz/s = 1Hz/1ms
// pwm中断处理,1ms中断一次
double pulse = 0;//pwm占空比=pulse/999
double speed = 0.8;//呼吸速度
void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim)
{
pulse += speed;
if (pulse >= htim2.Init.Period || pulse <=0)//htim2.Init.Period ==999
{
speed*= (-1);
}
__HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_4,(int) pulse); // 设置占空比
//OLED_ShowNum((int) pulse);
}