感觉PWM中断用HAL_TIM_PWM_Start_IT(&htimx, TIM_CHANNEL_y);启动就可以了,
但事实上这个中断仅仅对应:void HAL_TIM_PWM_PulseFinishedCallback (TIM_HandleTypeDef *htim);
如果启用:void HAL_TIM_PeriodElapsedCallback (TIM_HandleTypeDef *htim)中断,
必须使用HAL_TIM_Base_Start_IT(&htimx );才能完成。
经3天反复试验,如果需要这两个中断,就必须同时启用:
HAL_TIM_Base_Start_IT(&htimx );
HAL_TIM_PWM_Start_IT(&htimx, TIM_CHANNEL_y);
这样下面的函数才能都有响应。
void HAL_TIM_PWM_PulseFinishedCallback (TIM_HandleTypeDef *htim)
void HAL_TIM_PeriodElapsedCallback (TIM_HandleTypeDef *htim)
也就是说,这两个中断需要两个对应的启用函数。 |