123 #ifdef HAL_RTC_MODULE_ENABLED 127 #if defined(STM32L412xx) || defined(STM32L422xx) 129 #if defined(RTC_TAMPER1_SUPPORT) && defined(RTC_TAMPER3_SUPPORT) 130 #define RTC_TAMPCR_MASK ((uint32_t)RTC_TAMPCR_TAMPTS |\ 131 (uint32_t)RTC_TAMPCR_TAMPFREQ | (uint32_t)RTC_TAMPCR_TAMPFLT | (uint32_t)RTC_TAMPCR_TAMPPRCH |\ 132 (uint32_t)RTC_TAMPCR_TAMPPUDIS | (uint32_t)RTC_TAMPCR_TAMPIE |\ 133 (uint32_t)RTC_TAMPCR_TAMP1IE | (uint32_t)RTC_TAMPCR_TAMP1NOERASE | (uint32_t)RTC_TAMPCR_TAMP1MF |\ 134 (uint32_t)RTC_TAMPCR_TAMP2IE | (uint32_t)RTC_TAMPCR_TAMP2NOERASE | (uint32_t)RTC_TAMPCR_TAMP2MF |\ 135 (uint32_t)RTC_TAMPCR_TAMP3IE | (uint32_t)RTC_TAMPCR_TAMP3NOERASE | (uint32_t)RTC_TAMPCR_TAMP3MF) 136 #elif defined(RTC_TAMPER1_SUPPORT) 137 #define RTC_TAMPCR_MASK ((uint32_t)RTC_TAMPCR_TAMPTS |\ 138 (uint32_t)RTC_TAMPCR_TAMPFREQ | (uint32_t)RTC_TAMPCR_TAMPFLT | (uint32_t)RTC_TAMPCR_TAMPPRCH |\ 139 (uint32_t)RTC_TAMPCR_TAMPPUDIS | (uint32_t)RTC_TAMPCR_TAMPIE |\ 140 (uint32_t)RTC_TAMPCR_TAMP1IE | (uint32_t)RTC_TAMPCR_TAMP1NOERASE | (uint32_t)RTC_TAMPCR_TAMP1MF |\ 141 (uint32_t)RTC_TAMPCR_TAMP2IE | (uint32_t)RTC_TAMPCR_TAMP2NOERASE | (uint32_t)RTC_TAMPCR_TAMP2MF) 142 #elif defined(RTC_TAMPER3_SUPPORT) 143 #define RTC_TAMPCR_MASK ((uint32_t)RTC_TAMPCR_TAMPTS |\ 144 (uint32_t)RTC_TAMPCR_TAMPFREQ | (uint32_t)RTC_TAMPCR_TAMPFLT | (uint32_t)RTC_TAMPCR_TAMPPRCH |\ 145 (uint32_t)RTC_TAMPCR_TAMPPUDIS | (uint32_t)RTC_TAMPCR_TAMPIE |\ 146 (uint32_t)RTC_TAMPCR_TAMP2IE | (uint32_t)RTC_TAMPCR_TAMP2NOERASE | (uint32_t)RTC_TAMPCR_TAMP2MF |\ 147 (uint32_t)RTC_TAMPCR_TAMP3IE | (uint32_t)RTC_TAMPCR_TAMP3NOERASE | (uint32_t)RTC_TAMPCR_TAMP3MF) 149 #define RTC_TAMPCR_MASK ((uint32_t)RTC_TAMPCR_TAMPTS |\ 150 (uint32_t)RTC_TAMPCR_TAMPFREQ | (uint32_t)RTC_TAMPCR_TAMPFLT | (uint32_t)RTC_TAMPCR_TAMPPRCH |\ 151 (uint32_t)RTC_TAMPCR_TAMPPUDIS | (uint32_t)RTC_TAMPCR_TAMPIE |\ 152 (uint32_t)RTC_TAMPCR_TAMP2IE | (uint32_t)RTC_TAMPCR_TAMP2NOERASE | (uint32_t)RTC_TAMPCR_TAMP2MF) 207 UNUSED(RTC_TimeStampPin);
215 tmpreg = (uint32_t)(hrtc->
Instance->CR & (uint32_t)~(RTC_CR_TSEDGE | RTC_CR_TSE));
217 tmpreg |= TimeStampEdge;
223 hrtc->
Instance->CR = (uint32_t)tmpreg;
225 __HAL_RTC_TIMESTAMP_ENABLE(hrtc);
266 UNUSED(RTC_TimeStampPin);
274 tmpreg = (uint32_t)(hrtc->
Instance->CR & (uint32_t)~(RTC_CR_TSEDGE | RTC_CR_TSE));
276 tmpreg |= TimeStampEdge;
282 hrtc->
Instance->CR = (uint32_t)tmpreg;
284 __HAL_RTC_TIMESTAMP_ENABLE(hrtc);
287 __HAL_RTC_TIMESTAMP_ENABLE_IT(hrtc, RTC_IT_TS);
290 __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_IT();
291 __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_RISING_EDGE();
322 __HAL_RTC_TIMESTAMP_DISABLE_IT(hrtc, RTC_IT_TS);
325 tmpreg = (uint32_t)(hrtc->
Instance->CR & (uint32_t)~(RTC_CR_TSEDGE | RTC_CR_TSE));
328 hrtc->
Instance->CR = (uint32_t)tmpreg;
358 __HAL_RTC_INTERNAL_TIMESTAMP_ENABLE(hrtc);
388 __HAL_RTC_INTERNAL_TIMESTAMP_DISABLE(hrtc);
414 uint32_t tmptime, tmpdate;
420 tmptime = (uint32_t)(hrtc->
Instance->TSTR & RTC_TR_RESERVED_MASK);
421 tmpdate = (uint32_t)(hrtc->
Instance->TSDR & RTC_DR_RESERVED_MASK);
424 sTimeStamp->
Hours = (uint8_t)((tmptime & (RTC_TSTR_HT | RTC_TSTR_HU)) >> RTC_TSTR_HU_Pos);
425 sTimeStamp->
Minutes = (uint8_t)((tmptime & (RTC_TSTR_MNT | RTC_TSTR_MNU)) >> RTC_TSTR_MNU_Pos);
426 sTimeStamp->
Seconds = (uint8_t)((tmptime & (RTC_TSTR_ST | RTC_TSTR_SU)) >> RTC_TSTR_SU_Pos);
427 sTimeStamp->
TimeFormat = (uint8_t)((tmptime & (RTC_TSTR_PM)) >> RTC_TSTR_PM_Pos);
431 sTimeStampDate->
Year = 0U;
432 sTimeStampDate->
Month = (uint8_t)((tmpdate & (RTC_TSDR_MT | RTC_TSDR_MU)) >> RTC_TSDR_MU_Pos);
433 sTimeStampDate->
Date = (uint8_t)((tmpdate & (RTC_TSDR_DT | RTC_TSDR_DU)) >> RTC_TSDR_DU_Pos);
434 sTimeStampDate->
WeekDay = (uint8_t)((tmpdate & (RTC_TSDR_WDU)) >> RTC_TSDR_WDU_Pos);
437 if (Format == RTC_FORMAT_BIN)
451 __HAL_RTC_INTERNAL_TIMESTAMP_CLEAR_FLAG(hrtc, RTC_FLAG_ITSF);
452 __HAL_RTC_TIMESTAMP_CLEAR_FLAG(hrtc, RTC_FLAG_TSF);
462 #if defined(STM32L412xx) || defined(STM32L422xx) 471 __HAL_RTC_TAMPER_TIMESTAMP_EXTI_CLEAR_FLAG();
473 if ((hrtc->
Instance->MISR & RTC_MISR_TSMF) != 0u)
475 #if (USE_HAL_RTC_REGISTER_CALLBACKS == 1) 486 uint32_t tmp = tamp->MISR;
491 #if defined(RTC_TAMPER1_SUPPORT) 493 if ((tmp & RTC_TAMPER_1) == RTC_TAMPER_1)
495 #if (USE_HAL_RTC_REGISTER_CALLBACKS == 1) 506 if ((tmp & RTC_TAMPER_2) == RTC_TAMPER_2)
508 #if (USE_HAL_RTC_REGISTER_CALLBACKS == 1) 517 #if defined(RTC_TAMPER3_SUPPORT) 519 if ((tmp & RTC_TAMPER_3) == RTC_TAMPER_3)
521 #if (USE_HAL_RTC_REGISTER_CALLBACKS == 1) 541 __HAL_RTC_TAMPER_TIMESTAMP_EXTI_CLEAR_FLAG();
544 if (__HAL_RTC_TIMESTAMP_GET_IT_SOURCE(hrtc, RTC_IT_TS) != 0U)
546 if (__HAL_RTC_TIMESTAMP_GET_FLAG(hrtc, RTC_FLAG_TSF) != 0U)
549 #if (USE_HAL_RTC_REGISTER_CALLBACKS == 1) 556 __HAL_RTC_TIMESTAMP_CLEAR_FLAG(hrtc, RTC_FLAG_TSF);
560 #if defined(RTC_TAMPER1_SUPPORT) 562 if (__HAL_RTC_TAMPER_GET_IT_SOURCE(hrtc, RTC_IT_TAMP | RTC_IT_TAMP1) != 0U)
564 if (__HAL_RTC_TAMPER_GET_FLAG(hrtc, RTC_FLAG_TAMP1F) != 0U)
567 __HAL_RTC_TAMPER_CLEAR_FLAG(hrtc, RTC_FLAG_TAMP1F);
570 #if (USE_HAL_RTC_REGISTER_CALLBACKS == 1) 580 if (__HAL_RTC_TAMPER_GET_IT_SOURCE(hrtc, RTC_IT_TAMP | RTC_IT_TAMP2) != 0U)
582 if (__HAL_RTC_TAMPER_GET_FLAG(hrtc, RTC_FLAG_TAMP2F) != 0U)
585 __HAL_RTC_TAMPER_CLEAR_FLAG(hrtc, RTC_FLAG_TAMP2F);
588 #if (USE_HAL_RTC_REGISTER_CALLBACKS == 1) 596 #if defined(RTC_TAMPER3_SUPPORT) 598 if (__HAL_RTC_TAMPER_GET_IT_SOURCE(hrtc, RTC_IT_TAMP | RTC_IT_TAMP3) != 0U)
600 if (__HAL_RTC_TAMPER_GET_FLAG(hrtc, RTC_FLAG_TAMP3F) != 0U)
603 __HAL_RTC_TAMPER_CLEAR_FLAG(hrtc, RTC_FLAG_TAMP3F);
606 #if (USE_HAL_RTC_REGISTER_CALLBACKS == 1) 645 while (__HAL_RTC_TIMESTAMP_GET_FLAG(hrtc, RTC_FLAG_TSF) == 0U)
647 if (__HAL_RTC_TIMESTAMP_GET_FLAG(hrtc, RTC_FLAG_TSOVF) != 0U)
650 __HAL_RTC_TIMESTAMP_CLEAR_FLAG(hrtc, RTC_FLAG_TSOVF);
658 if (Timeout != HAL_MAX_DELAY)
660 if (((
HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U))
721 #if defined(STM32L412xx) || defined(STM32L422xx) 722 if (READ_BIT(hrtc->
Instance->ICSR, RTC_ICSR_INITF) == 0U)
724 if (READ_BIT(hrtc->
Instance->ISR, RTC_ISR_INITF) == 0U)
728 #if defined(STM32L412xx) || defined(STM32L422xx) 729 while (READ_BIT(hrtc->
Instance->ICSR, RTC_ICSR_WUTWF) == 0U)
731 while (READ_BIT(hrtc->
Instance->ISR, RTC_ISR_WUTWF) == 0U)
734 if ((
HAL_GetTick() - tickstart) > RTC_TIMEOUT_VALUE)
753 WRITE_REG(hrtc->
Instance->WUTR, (uint32_t)WakeUpCounter);
756 SET_BIT(hrtc->
Instance->CR, RTC_CR_WUTE);
781 #if defined(STM32L412xx) || defined(STM32L422xx) 792 #if defined(STM32L412xx) || defined(STM32L422xx) 814 #if defined(STM32L412xx) || defined(STM32L422xx) 815 if (READ_BIT(hrtc->
Instance->ICSR, RTC_ICSR_INITF) == 0U)
817 if (READ_BIT(hrtc->
Instance->ISR, RTC_ISR_INITF) == 0U)
821 #if defined(STM32L412xx) || defined(STM32L422xx) 822 while (READ_BIT(hrtc->
Instance->ICSR, RTC_ICSR_WUTWF) == 0U)
824 while (READ_BIT(hrtc->
Instance->ISR, RTC_ISR_WUTWF) == 0U)
827 if ((
HAL_GetTick() - tickstart) > RTC_TIMEOUT_VALUE)
842 #if defined(STM32L412xx) || defined(STM32L422xx) 844 hrtc->
Instance->WUTR = (uint32_t)(WakeUpCounter | (WakeUpAutoClr << RTC_WUTR_WUTOCLR_Pos));
847 hrtc->
Instance->WUTR = (uint32_t)WakeUpCounter;
853 #if defined(STM32L412xx) || defined(STM32L422xx) 855 if (WakeUpAutoClr != 0u)
858 __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_EVENT();
906 __HAL_RTC_WAKEUPTIMER_DISABLE(hrtc);
909 __HAL_RTC_WAKEUPTIMER_DISABLE_IT(hrtc, RTC_IT_WUT);
913 while (__HAL_RTC_WAKEUPTIMER_GET_FLAG(hrtc, RTC_FLAG_WUTWF) == 0U)
915 if ((
HAL_GetTick() - tickstart) > RTC_TIMEOUT_VALUE)
948 return ((uint32_t)(hrtc->
Instance->WUTR & RTC_WUTR_WUT));
959 __HAL_RTC_WAKEUPTIMER_EXTI_CLEAR_FLAG();
962 #if defined(STM32L412xx) || defined(STM32L422xx) 963 if ((hrtc->
Instance->MISR & RTC_MISR_WUTMF) != 0u)
966 hrtc->
Instance->SCR = RTC_SCR_CWUTF;
969 if (__HAL_RTC_WAKEUPTIMER_GET_FLAG(hrtc, RTC_FLAG_WUTF) != 0U)
976 #if (USE_HAL_RTC_REGISTER_CALLBACKS == 1) 1014 while (__HAL_RTC_WAKEUPTIMER_GET_FLAG(hrtc, RTC_FLAG_WUTF) == 0U)
1016 if (Timeout != HAL_MAX_DELAY)
1018 if (((
HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U))
1092 assert_param(IS_RTC_SMOOTH_CALIB_PERIOD(SmoothCalibPeriod));
1093 assert_param(IS_RTC_SMOOTH_CALIB_PLUS(SmoothCalibPlusPulses));
1094 assert_param(IS_RTC_SMOOTH_CALIB_MINUS(SmoothCalibMinusPulsesValue));
1105 #if defined(STM32L412xx) || defined(STM32L422xx) 1106 if ((hrtc->
Instance->ICSR & RTC_ICSR_RECALPF) != 0U)
1108 if ((hrtc->
Instance->ISR & RTC_ISR_RECALPF) != 0U)
1114 #if defined(STM32L412xx) || defined(STM32L422xx) 1115 while ((hrtc->
Instance->ICSR & RTC_ICSR_RECALPF) != 0U)
1117 while ((hrtc->
Instance->ISR & RTC_ISR_RECALPF) != 0U)
1120 if ((
HAL_GetTick() - tickstart) > RTC_TIMEOUT_VALUE)
1137 MODIFY_REG(hrtc->
Instance->CALR, (RTC_CALR_CALP | RTC_CALR_CALW8 | RTC_CALR_CALW16 | RTC_CALR_CALM), (uint32_t)(SmoothCalibPeriod | SmoothCalibPlusPulses | SmoothCalibMinusPulsesValue));
1151 #if defined(STM32L412xx) || defined(STM32L422xx) 1221 #if defined(STM32L412xx) || defined(STM32L422xx) 1222 while ((hrtc->
Instance->ICSR & RTC_ICSR_SHPF) != 0U)
1224 while ((hrtc->
Instance->ISR & RTC_ISR_SHPF) != 0U)
1227 if ((
HAL_GetTick() - tickstart) > RTC_TIMEOUT_VALUE)
1242 if ((hrtc->
Instance->CR & RTC_CR_REFCKON) == 0U)
1245 hrtc->
Instance->SHIFTR = (uint32_t)(uint32_t)(ShiftSubFS) | (uint32_t)(ShiftAdd1S);
1248 if ((hrtc->
Instance->CR & RTC_CR_BYPSHAD) == 0U)
1313 hrtc->
Instance->CR &= (uint32_t)~RTC_CR_COSEL;
1316 hrtc->
Instance->CR |= (uint32_t)CalibOutput;
1318 __HAL_RTC_CALIBRATION_OUTPUT_ENABLE(hrtc);
1347 __HAL_RTC_CALIBRATION_OUTPUT_DISABLE(hrtc);
1368 HAL_StatusTypeDef status;
1382 __HAL_RTC_CLOCKREF_DETECTION_ENABLE(hrtc);
1409 HAL_StatusTypeDef status;
1423 __HAL_RTC_CLOCKREF_DETECTION_DISABLE(hrtc);
1461 SET_BIT(hrtc->
Instance->CR, RTC_CR_BYPSHAD);
1551 while (__HAL_RTC_ALARM_GET_FLAG(hrtc, RTC_FLAG_ALRBF) == 0U)
1553 if (Timeout != HAL_MAX_DELAY)
1555 if (((
HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U))
1564 __HAL_RTC_ALARM_CLEAR_FLAG(hrtc, RTC_FLAG_ALRBF);
1603 #if defined(STM32L412xx) || defined(STM32L422xx) 1627 assert_param(((sTamper->
Filter != RTC_TAMPERFILTER_DISABLE) && ((sTamper->
Trigger == RTC_TAMPERTRIGGER_LOWLEVEL) || (sTamper->
Trigger == RTC_TAMPERTRIGGER_HIGHLEVEL)))
1628 || ((sTamper->
Filter == RTC_TAMPERFILTER_DISABLE) && ((sTamper->
Trigger == RTC_TAMPERTRIGGER_RISINGEDGE) || (sTamper->
Trigger == RTC_TAMPERTRIGGER_FALLINGEDGE))));
1632 tmpreg &= ~((sTamper->
Tamper << TAMP_CR2_TAMP1TRG_Pos) | (sTamper->
Tamper << TAMP_CR2_TAMP1MSK_Pos) | (sTamper->
Tamper << TAMP_CR2_TAMP1NOERASE_Pos));
1635 if ((sTamper->
Trigger == RTC_TAMPERTRIGGER_HIGHLEVEL) || (sTamper->
Trigger == RTC_TAMPERTRIGGER_FALLINGEDGE))
1637 tmpreg |= (sTamper->
Tamper << TAMP_CR2_TAMP1TRG_Pos);
1641 if (sTamper->
MaskFlag != RTC_TAMPERMASK_FLAG_DISABLE)
1643 tmpreg |= (sTamper->
Tamper << TAMP_CR2_TAMP1MSK_Pos);
1647 if (sTamper->
NoErase != RTC_TAMPER_ERASE_BACKUP_ENABLE)
1649 tmpreg |= (sTamper->
Tamper << TAMP_CR2_TAMP1NOERASE_Pos);
1661 tmpreg = (hrtc->
Instance->CR & ~RTC_CR_TAMPTS);
1667 tamp->CR1 |= (sTamper->
Tamper);
1700 if (sTamper->
Trigger != RTC_TAMPERTRIGGER_RISINGEDGE)
1705 if (sTamper->
NoErase != RTC_TAMPER_ERASE_BACKUP_ENABLE)
1708 #if defined(RTC_TAMPER1_SUPPORT) 1709 if ((sTamper->
Tamper & RTC_TAMPER_1) != 0)
1711 sTamper->
NoErase |= RTC_TAMPCR_TAMP1NOERASE;
1714 if ((sTamper->
Tamper & RTC_TAMPER_2) != 0)
1716 sTamper->
NoErase |= RTC_TAMPCR_TAMP2NOERASE;
1718 #if defined(RTC_TAMPER3_SUPPORT) 1719 if ((sTamper->
Tamper & RTC_TAMPER_3) != 0)
1721 sTamper->
NoErase |= RTC_TAMPCR_TAMP3NOERASE;
1726 if (sTamper->
MaskFlag != RTC_TAMPERMASK_FLAG_DISABLE)
1729 #if defined(RTC_TAMPER1_SUPPORT) 1730 if ((sTamper->
Tamper & RTC_TAMPER_1) != 0)
1732 sTamper->
MaskFlag |= RTC_TAMPCR_TAMP1MF;
1735 if ((sTamper->
Tamper & RTC_TAMPER_2) != 0)
1737 sTamper->
MaskFlag |= RTC_TAMPCR_TAMP2MF;
1739 #if defined(RTC_TAMPER3_SUPPORT) 1740 if ((sTamper->
Tamper & RTC_TAMPER_3) != 0)
1742 sTamper->
MaskFlag |= RTC_TAMPCR_TAMP3MF;
1747 tmpreg = ((uint32_t)sTamper->
Tamper | (uint32_t)sTamper->
Trigger | (uint32_t)sTamper->
NoErase | \
1751 hrtc->
Instance->TAMPCR &= (uint32_t)~((uint32_t)sTamper->
Tamper | (uint32_t)(sTamper->
Tamper << 1) | RTC_TAMPCR_MASK);
1766 #if defined(STM32L412xx) || defined(STM32L422xx) 1794 tmpreg &= ~((sTamper->
Tamper << TAMP_CR2_TAMP1TRG_Pos) | (sTamper->
Tamper << TAMP_CR2_TAMP1MSK_Pos) | (sTamper->
Tamper << TAMP_CR2_TAMP1NOERASE_Pos));
1796 if (sTamper->
Trigger != RTC_TAMPERTRIGGER_RISINGEDGE)
1798 tmpreg |= (sTamper->
Tamper << TAMP_CR2_TAMP1TRG_Pos);
1802 if (sTamper->
MaskFlag != RTC_TAMPERMASK_FLAG_DISABLE)
1804 tmpreg |= (sTamper->
Tamper << TAMP_CR2_TAMP1MSK_Pos);
1808 if (sTamper->
NoErase != RTC_TAMPER_ERASE_BACKUP_ENABLE)
1810 tmpreg |= (sTamper->
Tamper << TAMP_CR2_TAMP1NOERASE_Pos);
1822 tmpreg = (hrtc->
Instance->CR & ~RTC_CR_TAMPTS);
1828 __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_IT();
1829 __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_RISING_FALLING_EDGE();
1832 tamp->IER |= sTamper->
Tamper;
1835 tamp->CR1 |= sTamper->
Tamper;
1850 uint32_t tmpreg = 0;
1870 if (sTamper->
Trigger != RTC_TAMPERTRIGGER_RISINGEDGE)
1875 if (sTamper->
NoErase != RTC_TAMPER_ERASE_BACKUP_ENABLE)
1878 #if defined(RTC_TAMPER1_SUPPORT) 1879 if ((sTamper->
Tamper & RTC_TAMPER_1) != 0)
1881 sTamper->
NoErase |= RTC_TAMPCR_TAMP1NOERASE;
1884 if ((sTamper->
Tamper & RTC_TAMPER_2) != 0)
1886 sTamper->
NoErase |= RTC_TAMPCR_TAMP2NOERASE;
1888 #if defined(RTC_TAMPER3_SUPPORT) 1889 if ((sTamper->
Tamper & RTC_TAMPER_3) != 0)
1891 sTamper->
NoErase |= RTC_TAMPCR_TAMP3NOERASE;
1896 if (sTamper->
MaskFlag != RTC_TAMPERMASK_FLAG_DISABLE)
1899 #if defined(RTC_TAMPER1_SUPPORT) 1900 if ((sTamper->
Tamper & RTC_TAMPER_1) != 0)
1902 sTamper->
MaskFlag |= RTC_TAMPCR_TAMP1MF;
1905 if ((sTamper->
Tamper & RTC_TAMPER_2) != 0)
1907 sTamper->
MaskFlag |= RTC_TAMPCR_TAMP2MF;
1909 #if defined(RTC_TAMPER3_SUPPORT) 1910 if ((sTamper->
Tamper & RTC_TAMPER_3) != 0)
1912 sTamper->
MaskFlag |= RTC_TAMPCR_TAMP3MF;
1921 hrtc->
Instance->TAMPCR &= (uint32_t)~((uint32_t)sTamper->
Tamper | (uint32_t)(sTamper->
Tamper << 1) | RTC_TAMPCR_MASK);
1926 __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_IT();
1927 __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_RISING_EDGE();
1939 #if defined(STM32L412xx) || defined(STM32L422xx) 1957 tamp->CR1 &= ~Tamper;
1960 tamp->CR2 &= ~((Tamper << 24) | (Tamper << 16) | Tamper);
1963 tamp->IER &= ~Tamper;
1993 #if defined(RTC_TAMPER1_SUPPORT) 1994 if ((Tamper & RTC_TAMPER_1) != 0U)
1997 hrtc->
Instance->TAMPCR &= ((uint32_t)~(RTC_IT_TAMP | RTC_IT_TAMP1));
2000 if ((Tamper & RTC_TAMPER_2) != 0U)
2003 hrtc->
Instance->TAMPCR &= ((uint32_t)~(RTC_IT_TAMP | RTC_IT_TAMP2));
2005 #if defined(RTC_TAMPER3_SUPPORT) 2006 if ((Tamper & RTC_TAMPER_3) != 0U)
2009 hrtc->
Instance->TAMPCR &= ((uint32_t)~(RTC_IT_TAMP | RTC_IT_TAMP3));
2023 #if defined(RTC_TAMPER1_SUPPORT) 2035 while (__HAL_RTC_TAMPER_GET_FLAG(hrtc, RTC_FLAG_TAMP1F) == 0U)
2037 if (Timeout != HAL_MAX_DELAY)
2039 if (((
HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U))
2048 __HAL_RTC_TAMPER_CLEAR_FLAG(hrtc, RTC_FLAG_TAMP1F);
2068 while (__HAL_RTC_TAMPER_GET_FLAG(hrtc, RTC_FLAG_TAMP2F) == 0U)
2070 if (Timeout != HAL_MAX_DELAY)
2072 if (((
HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U))
2081 __HAL_RTC_TAMPER_CLEAR_FLAG(hrtc, RTC_FLAG_TAMP2F);
2089 #if defined(RTC_TAMPER3_SUPPORT) 2101 while (__HAL_RTC_TAMPER_GET_FLAG(hrtc, RTC_FLAG_TAMP3F) == 0U)
2103 if (Timeout != HAL_MAX_DELAY)
2105 if ((Timeout == 0) || ((
HAL_GetTick() - tickstart) > Timeout))
2114 __HAL_RTC_TAMPER_CLEAR_FLAG(hrtc, RTC_FLAG_TAMP3F);
2125 #if defined(RTC_TAMPER1_SUPPORT) 2157 #if defined(RTC_TAMPER3_SUPPORT) 2211 #if defined(STM32L412xx) || defined(STM32L422xx) 2218 tmp = (uint32_t) & (tamp->BKP0R);
2223 tmp = (uint32_t) & (hrtc->
Instance->BKP0R);
2226 tmp += (BackupRegister * 4U);
2229 *(__IO uint32_t *)tmp = (uint32_t)Data;
2244 #if defined(STM32L412xx) || defined(STM32L422xx) 2251 tmp = (uint32_t) & (tamp->BKP0R);
2256 tmp = (uint32_t) & (hrtc->
Instance->BKP0R);
2259 tmp += (BackupRegister * 4U);
2262 return (*(__IO uint32_t *)tmp);
HAL_StatusTypeDef HAL_RTCEx_SetTimeStamp_IT(RTC_HandleTypeDef *hrtc, uint32_t TimeStampEdge, uint32_t RTC_TimeStampPin)
Set TimeStamp with Interrupt.
void(* Tamper3EventCallback)(struct __RTC_HandleTypeDef *hrtc)
HAL_StatusTypeDef HAL_RTCEx_SetInternalTimeStamp(RTC_HandleTypeDef *hrtc)
Set Internal TimeStamp.
void HAL_RTCEx_BKUPWrite(RTC_HandleTypeDef *hrtc, uint32_t BackupRegister, uint32_t Data)
HAL_StatusTypeDef HAL_RTCEx_DeactivateTimeStamp(RTC_HandleTypeDef *hrtc)
Deactivate TimeStamp.
HAL_StatusTypeDef HAL_RTCEx_PollForTimeStampEvent(RTC_HandleTypeDef *hrtc, uint32_t Timeout)
Handle TimeStamp polling request.
HAL_StatusTypeDef HAL_RTCEx_DeactivateWakeUpTimer(RTC_HandleTypeDef *hrtc)
Deactivate wake up timer counter.
__HAL_RTC_WAKEUPTIMER_ENABLE_IT(hrtc, RTC_IT_WUT)
__HAL_RTC_WAKEUPTIMER_ENABLE(hrtc)
HAL_StatusTypeDef HAL_RTC_WaitForSynchro(RTC_HandleTypeDef *hrtc)
Wait until the RTC Time and Date registers (RTC_TR and RTC_DR) are synchronized with RTC APB clock...
HAL_StatusTypeDef uint32_t WakeUpCounter
HAL_StatusTypeDef uint32_t uint32_t WakeUpClock
This file contains all the functions prototypes for the HAL module driver.
HAL_StatusTypeDef HAL_RTCEx_SetTimeStamp(RTC_HandleTypeDef *hrtc, uint32_t TimeStampEdge, uint32_t RTC_TimeStampPin)
Set TimeStamp.
__HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_IT()
HAL_StatusTypeDef HAL_RTCEx_SetRefClock(RTC_HandleTypeDef *hrtc)
HAL_StatusTypeDef HAL_RTCEx_SetSmoothCalib(RTC_HandleTypeDef *hrtc, uint32_t SmoothCalibPeriod, uint32_t SmoothCalibPlusPulses, uint32_t SmoothCalibMinusPulsesValue)
__IO HAL_RTCStateTypeDef State
void HAL_RTCEx_WakeUpTimerIRQHandler(RTC_HandleTypeDef *hrtc)
Handle Wake Up Timer interrupt request.
__HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_RISING_EDGE()
HAL_StatusTypeDef HAL_RTCEx_PollForTamper2Event(RTC_HandleTypeDef *hrtc, uint32_t Timeout)
uint32_t HAL_RTCEx_BKUPRead(RTC_HandleTypeDef *hrtc, uint32_t BackupRegister)
void(* Tamper2EventCallback)(struct __RTC_HandleTypeDef *hrtc)
void HAL_RTCEx_AlarmBEventCallback(RTC_HandleTypeDef *hrtc)
__HAL_RTC_WRITEPROTECTION_DISABLE(hrtc)
uint32_t HAL_GetTick(void)
Provide a tick value in millisecond.
HAL_StatusTypeDef HAL_RTCEx_DeactivateRefClock(RTC_HandleTypeDef *hrtc)
void HAL_RTCEx_Tamper1EventCallback(RTC_HandleTypeDef *hrtc)
uint32_t SamplingFrequency
__HAL_RTC_WAKEUPTIMER_CLEAR_FLAG(hrtc, RTC_FLAG_WUTF)
CLEAR_BIT(hrtc->Instance->CR, RTC_CR_WUTE)
HAL_StatusTypeDef HAL_RTCEx_DeactivateInternalTimeStamp(RTC_HandleTypeDef *hrtc)
Deactivate Internal TimeStamp.
RTC Time structure definition.
HAL_StatusTypeDef HAL_RTCEx_SetCalibrationOutPut(RTC_HandleTypeDef *hrtc, uint32_t CalibOutput)
HAL_StatusTypeDef HAL_RTCEx_DeactivateCalibrationOutPut(RTC_HandleTypeDef *hrtc)
HAL_StatusTypeDef HAL_RTCEx_SetTamper(RTC_HandleTypeDef *hrtc, RTC_TamperTypeDef *sTamper)
HAL_StatusTypeDef HAL_RTCEx_SetWakeUpTimer(RTC_HandleTypeDef *hrtc, uint32_t WakeUpCounter, uint32_t WakeUpClock)
Set wake up timer.
void HAL_RTCEx_TamperTimeStampIRQHandler(RTC_HandleTypeDef *hrtc)
Handle TimeStamp interrupt request.
HAL_StatusTypeDef HAL_RTCEx_DisableBypassShadow(RTC_HandleTypeDef *hrtc)
void HAL_RTCEx_Tamper2EventCallback(RTC_HandleTypeDef *hrtc)
void(* TimeStampEventCallback)(struct __RTC_HandleTypeDef *hrtc)
HAL_StatusTypeDef HAL_RTCEx_PollForTamper3Event(RTC_HandleTypeDef *hrtc, uint32_t Timeout)
void HAL_RTCEx_TimeStampEventCallback(RTC_HandleTypeDef *hrtc)
TimeStamp callback.
void(* Tamper1EventCallback)(struct __RTC_HandleTypeDef *hrtc)
void HAL_RTCEx_Tamper3EventCallback(RTC_HandleTypeDef *hrtc)
uint32_t PrechargeDuration
HAL_StatusTypeDef HAL_RTCEx_SetLowPowerCalib(RTC_HandleTypeDef *hrtc, uint32_t LowPowerCalib)
uint32_t HAL_RTCEx_GetWakeUpTimer(RTC_HandleTypeDef *hrtc)
Get wake up timer counter.
uint8_t RTC_Bcd2ToByte(uint8_t Value)
Convert from 2 digit BCD to Binary.
HAL_StatusTypeDef HAL_RTCEx_PollForAlarmBEvent(RTC_HandleTypeDef *hrtc, uint32_t Timeout)
MODIFY_REG(hrtc->Instance->CR, RTC_CR_WUCKSEL,(uint32_t) WakeUpClock)
RTC Date structure definition.
__HAL_RTC_WRITEPROTECTION_ENABLE(hrtc)
HAL_StatusTypeDef HAL_RTCEx_DeactivateTamper(RTC_HandleTypeDef *hrtc, uint32_t Tamper)
uint32_t TimeStampOnTamperDetection
HAL_StatusTypeDef HAL_RTCEx_EnableBypassShadow(RTC_HandleTypeDef *hrtc)
HAL_StatusTypeDef HAL_RTCEx_GetTimeStamp(RTC_HandleTypeDef *hrtc, RTC_TimeTypeDef *sTimeStamp, RTC_DateTypeDef *sTimeStampDate, uint32_t Format)
Get the RTC TimeStamp value.
HAL_StatusTypeDef HAL_RTCEx_SetSynchroShift(RTC_HandleTypeDef *hrtc, uint32_t ShiftAdd1S, uint32_t ShiftSubFS)
HAL_StatusTypeDef RTC_ExitInitMode(RTC_HandleTypeDef *hrtc)
Exit the RTC Initialization mode.
HAL_StatusTypeDef HAL_RTCEx_PollForWakeUpTimerEvent(RTC_HandleTypeDef *hrtc, uint32_t Timeout)
void(* WakeUpTimerEventCallback)(struct __RTC_HandleTypeDef *hrtc)
RTC Handle Structure definition.
assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock))
void HAL_RTCEx_WakeUpTimerEventCallback(RTC_HandleTypeDef *hrtc)
HAL_StatusTypeDef HAL_RTCEx_SetTamper_IT(RTC_HandleTypeDef *hrtc, RTC_TamperTypeDef *sTamper)
HAL_StatusTypeDef HAL_RTCEx_SetWakeUpTimer_IT(RTC_HandleTypeDef *hrtc, uint32_t WakeUpCounter, uint32_t WakeUpClock, uint32_t WakeUpAutoClr)
Set wake up timer with interrupt.
HAL_StatusTypeDef RTC_EnterInitMode(RTC_HandleTypeDef *hrtc)
Enter the RTC Initialization mode.
HAL_StatusTypeDef HAL_RTCEx_PollForTamper1Event(RTC_HandleTypeDef *hrtc, uint32_t Timeout)