天天看点

基于HAL库的STM32定时器单脉冲控制

这里的单脉冲控制是指在PWM下产生指定个数的脉冲。

先在CubeMx中按照PWM进行配置。

定义一个变量表示脉冲个数。

uint8_t PWMnum = 5;      

开启PWM中断。

HAL_TIM_PWM_Start_IT(&htim1, TIM_CHANNEL_1);      

定义脉冲完成回调函数。    uint8_t cnt = 0;

void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim)
{

     if(htim->Instance == htim1.Instance) 
    {             
         cnt++;
        if(cnt == PWMnum)
       {
         HAL_TIM_PWM_Stop_IT(&htim1, TIM_CHANNEL_1);
         PWMnum = 0;
          cnt = 0;
        }
    }
}      

通过设置PWMnum即可控制输出脉冲数量。

继续阅读