diff options
Diffstat (limited to 'os')
| -rw-r--r-- | os/hal/ports/STM32/LLD/RTCv2/hal_rtc_lld.c | 10 | 
1 files changed, 10 insertions, 0 deletions
diff --git a/os/hal/ports/STM32/LLD/RTCv2/hal_rtc_lld.c b/os/hal/ports/STM32/LLD/RTCv2/hal_rtc_lld.c index 2e78f49fe..7d70cd44b 100644 --- a/os/hal/ports/STM32/LLD/RTCv2/hal_rtc_lld.c +++ b/os/hal/ports/STM32/LLD/RTCv2/hal_rtc_lld.c @@ -250,6 +250,10 @@ OSAL_IRQ_HANDLER(STM32_RTC_COMMON_HANDLER) {    isr = RTCD1.rtc->ISR;
    RTCD1.rtc->ISR = 0U;
 +  extiClearGroup1(EXTI_MASK1(STM32_RTC_ALARM_EXTI) |
 +                  EXTI_MASK1(STM32_RTC_TAMP_STAMP_EXTI) |
 +                  EXTI_MASK1(STM32_RTC_WKUP_EXTI));
 +
    if (RTCD1.callback != NULL) {
      uint32_t cr = RTCD1-rtc->CR;
      uint32_t tampcr = RTCD1.rtc->TAMPCR;
 @@ -332,6 +336,8 @@ OSAL_IRQ_HANDLER(STM32_RTC_TAMP_STAMP_HANDLER) {    isr = RTCD1.rtc->ISR;
    RTCD1.rtc->ISR = clear;
 +  extiClearGroup1(EXTI_MASK1(STM32_RTC_TAMP_STAMP_EXTI));
 +
    if (RTCD1.callback != NULL) {
      uint32_t cr, tampcr;
 @@ -381,6 +387,8 @@ OSAL_IRQ_HANDLER(STM32_RTC_WKUP_HANDLER) {    isr = RTCD1.rtc->ISR;
    RTCD1.rtc->ISR = ~RTC_ISR_WUTF;
 +  extiClearGroup1(EXTI_MASK1(STM32_RTC_WKUP_EXTI));
 +
    if (RTCD1.callback != NULL) {
      uint32_t cr = RTCD1.rtc->CR;
 @@ -414,6 +422,8 @@ OSAL_IRQ_HANDLER(STM32_RTC_ALARM_HANDLER) {    isr = RTCD1.rtc->ISR;
    RTCD1.rtc->ISR = clear;
 +  extiClearGroup1(EXTI_MASK1(STM32_RTC_ALARM_EXTI));
 +
    if (RTCD1.callback != NULL) {
      uint32_t cr = RTCD1.rtc->CR;
  #if defined(RTC_ISR_ALRAF)
  | 
