diff --git a/os/hal/ports/STM32/LLD/TIMv1/gpt_lld.c b/os/hal/ports/STM32/LLD/TIMv1/gpt_lld.c index 0f48faec9..127e9119f 100644 --- a/os/hal/ports/STM32/LLD/TIMv1/gpt_lld.c +++ b/os/hal/ports/STM32/LLD/TIMv1/gpt_lld.c @@ -863,6 +863,7 @@ void gpt_lld_polled_delay(GPTDriver *gptp, gptcnt_t interval) { gptp->tim->ARR = (uint32_t)(interval - 1); /* Time constant. */ gptp->tim->EGR = STM32_TIM_EGR_UG; /* Update event. */ + gptp->tim->SR = 0; /* Clear pending IRQs. */ gptp->tim->CR1 = STM32_TIM_CR1_OPM | STM32_TIM_CR1_URS | STM32_TIM_CR1_CEN; while (!(gptp->tim->SR & STM32_TIM_SR_UIF)) ; diff --git a/readme.txt b/readme.txt index 37cf4df7b..a6dfbc2a0 100644 --- a/readme.txt +++ b/readme.txt @@ -73,6 +73,7 @@ ***************************************************************************** *** 16.1.6 *** +- HAL: Fixed function gpt_lld_polled_delay() is broken on STM32 (bug #775). - HAL: Fixed invalid output initialization for STM32 DACx channels 2 (bug #773). - HAL: Fixed CAN inclusion path missing for STM32F107 (bug #772).