天天看点

STM32 HAL PWM中断 相关问题

控制电机,希望得到确定数量的PWM波形

使能PWM中断

STM32 HAL PWM中断 相关问题

实测

HAL_TIM_OC_DelayElapsedCallback(htim);
HAL_TIM_PWM_PulseFinishedCallback(htim);      

都会被调用。

在中断处理函数中也证实了这点

void HAL_TIM_IRQHandler(TIM_HandleTypeDef *htim)
{
  ......

        /* Output compare event */
        else
        {
#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
          htim->OC_DelayElapsedCallback(htim);
          htim->PWM_PulseFinishedCallback(htim);
#else
          HAL_TIM_OC_DelayElapsedCallback(htim);
          HAL_TIM_PWM_PulseFinishedCallback(htim);
#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
        }

  ......
}
           

失能中断后,实测两个函数都不会被调用

所以对PWM的控制使用这两个都可以?有什么区别?