stm32f030 HAL库中定时器中断的问题

    stm32f030的HAL库编程中,发现使用定时器中断时,按照官方示例代码给出的程序,可以点亮LED灯,并且按设定的定时值闪烁。但第一次进入中断的时间并不是自己希望的时间间隔,经测试,只有几个ms,说明HAL库中在开启定时中断时,其定时更新标志位已被置位。
    要实现开启定时中断后,按定时值等待后进入中断处理的效果,需要在开启定时中断前,将定时器更新标志清零。
void MX_TIM6_Init(void)
{
  htim6.Instance = TIM6;
  htim6.Init.Prescaler = 47999;
  htim6.Init.CounterMode = TIM_COUNTERMODE_UP;
  htim6.Init.Period = 999;
  htim6.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
  if (HAL_TIM_Base_Init(&htim6) != HAL_OK)
  {
    Error_Handler();
  }
  __HAL_TIM_CLEAR_FLAG(&htim6,TIM_FLAG_UPDATE);
}
HAL_TIM_Base_Start_IT(&htim6);

你可能感兴趣的:(stm32f030 HAL库中定时器中断的问题)