[HAL][TIM] Update interrupt flag is cleared when the update event is generated by software
diff --git a/Src/stm32f2xx_hal_tim.c b/Src/stm32f2xx_hal_tim.c index 317fc56..602e79d 100644 --- a/Src/stm32f2xx_hal_tim.c +++ b/Src/stm32f2xx_hal_tim.c
@@ -6813,6 +6813,13 @@ /* Generate an update event to reload the Prescaler and the repetition counter (only for advanced timer) value immediately */ TIMx->EGR = TIM_EGR_UG; + + /* Check if the update flag is set after the Update Generation, if so clear the UIF flag */ + if (HAL_IS_BIT_SET(TIMx->SR, TIM_FLAG_UPDATE)) + { + /* Clear the update flag */ + CLEAR_BIT(TIMx->SR, TIM_FLAG_UPDATE); + } } /**