193#ifdef HAL_RTC_MODULE_ENABLED
265#if (USE_HAL_RTC_REGISTER_CALLBACKS == 1)
276#if defined(RTC_TAMPER2_SUPPORT)
277 hrtc->Tamper2EventCallback = HAL_RTCEx_Tamper2EventCallback;
282 hrtc->InternalTamper1EventCallback = HAL_RTCEx_InternalTamper1EventCallback;
283 hrtc->InternalTamper2EventCallback = HAL_RTCEx_InternalTamper2EventCallback;
284 hrtc->InternalTamper3EventCallback = HAL_RTCEx_InternalTamper3EventCallback;
285 hrtc->InternalTamper4EventCallback = HAL_RTCEx_InternalTamper4EventCallback;
286 hrtc->InternalTamper5EventCallback = HAL_RTCEx_InternalTamper5EventCallback;
287 hrtc->InternalTamper6EventCallback = HAL_RTCEx_InternalTamper6EventCallback;
288 hrtc->InternalTamper8EventCallback = HAL_RTCEx_InternalTamper8EventCallback;
337 hrtc->Instance->CR |= (
hrtc->Init.HourFormat |
hrtc->Init.OutPut |
hrtc->Init.OutPutPolarity);
348 hrtc->Instance->CR &= ~(RTC_CR_TAMPALRM_PU | RTC_CR_TAMPALRM_TYPE | RTC_CR_OUT2EN);
349 hrtc->Instance->CR |= (
hrtc->Init.OutPutPullUp |
hrtc->Init.OutPutType |
hrtc->Init.OutPutRemap);
352 hrtc->Instance->OR |= (
hrtc->Init.OutPutType |
hrtc->Init.OutPutRemap);
405 hrtc->Instance->TR = 0x00000000U;
410 hrtc->Instance->CR = 0x00000000U;
417 while ((((
hrtc->Instance->ICSR) & RTC_ICSR_WUTWF) == 0U) && (status !=
HAL_TIMEOUT))
438 hrtc->Instance->CR = 0x00000000U;
443 hrtc->Instance->ALRMAR = 0x00000000U;
444 hrtc->Instance->ALRMBR = 0x00000000U;
445 hrtc->Instance->SHIFTR = 0x00000000U;
446 hrtc->Instance->CALR = 0x00000000U;
447 hrtc->Instance->ALRMASSR = 0x00000000U;
448 hrtc->Instance->ALRMBSSR = 0x00000000U;
458 ((TAMP_TypeDef *)((uint32_t)
hrtc->Instance + TAMP_OFFSET))->CR1 = 0xFFFF0000U;
459 ((TAMP_TypeDef *)((uint32_t)
hrtc->Instance + TAMP_OFFSET))->CR2 = 0x00000000U;
462 hrtc->Instance->TAMPCR = 0x00000000U;
465 hrtc->Instance->OR = 0x00000000U;
471#if (USE_HAL_RTC_REGISTER_CALLBACKS == 1)
495#if (USE_HAL_RTC_REGISTER_CALLBACKS == 1)
526 if(pCallback ==
NULL)
538 case HAL_RTC_ALARM_A_EVENT_CB_ID :
539 hrtc->AlarmAEventCallback = pCallback;
542 case HAL_RTC_ALARM_B_EVENT_CB_ID :
543 hrtc->AlarmBEventCallback = pCallback;
546 case HAL_RTC_TIMESTAMP_EVENT_CB_ID :
547 hrtc->TimeStampEventCallback = pCallback;
550 case HAL_RTC_WAKEUPTIMER_EVENT_CB_ID :
551 hrtc->WakeUpTimerEventCallback = pCallback;
554 case HAL_RTC_TAMPER1_EVENT_CB_ID :
555 hrtc->Tamper1EventCallback = pCallback;
558#if defined(RTC_TAMPER2_SUPPORT)
559 case HAL_RTC_TAMPER2_EVENT_CB_ID :
560 hrtc->Tamper2EventCallback = pCallback;
564 case HAL_RTC_TAMPER3_EVENT_CB_ID :
565 hrtc->Tamper3EventCallback = pCallback;
569 case HAL_RTC_INTERNAL_TAMPER1_EVENT_CB_ID :
570 hrtc->InternalTamper1EventCallback = pCallback;
573 case HAL_RTC_INTERNAL_TAMPER2_EVENT_CB_ID :
574 hrtc->InternalTamper2EventCallback = pCallback;
577 case HAL_RTC_INTERNAL_TAMPER3_EVENT_CB_ID :
578 hrtc->InternalTamper3EventCallback = pCallback;
581 case HAL_RTC_INTERNAL_TAMPER4_EVENT_CB_ID :
582 hrtc->InternalTamper4EventCallback = pCallback;
585 case HAL_RTC_INTERNAL_TAMPER5_EVENT_CB_ID :
586 hrtc->InternalTamper5EventCallback = pCallback;
589 case HAL_RTC_INTERNAL_TAMPER6_EVENT_CB_ID :
590 hrtc->InternalTamper6EventCallback = pCallback;
593 case HAL_RTC_INTERNAL_TAMPER8_EVENT_CB_ID :
594 hrtc->InternalTamper8EventCallback = pCallback;
598 case HAL_RTC_MSPINIT_CB_ID :
599 hrtc->MspInitCallback = pCallback;
602 case HAL_RTC_MSPDEINIT_CB_ID :
603 hrtc->MspDeInitCallback = pCallback;
616 case HAL_RTC_MSPINIT_CB_ID :
617 hrtc->MspInitCallback = pCallback;
620 case HAL_RTC_MSPDEINIT_CB_ID :
621 hrtc->MspDeInitCallback = pCallback;
678 case HAL_RTC_ALARM_A_EVENT_CB_ID :
682 case HAL_RTC_ALARM_B_EVENT_CB_ID :
686 case HAL_RTC_TIMESTAMP_EVENT_CB_ID :
690 case HAL_RTC_WAKEUPTIMER_EVENT_CB_ID :
694 case HAL_RTC_TAMPER1_EVENT_CB_ID :
698#if defined(RTC_TAMPER2_SUPPORT)
699 case HAL_RTC_TAMPER2_EVENT_CB_ID :
700 hrtc->Tamper2EventCallback = HAL_RTCEx_Tamper2EventCallback;
704 case HAL_RTC_TAMPER3_EVENT_CB_ID :
709 case HAL_RTC_INTERNAL_TAMPER1_EVENT_CB_ID :
710 hrtc->InternalTamper1EventCallback = HAL_RTCEx_InternalTamper1EventCallback;
713 case HAL_RTC_INTERNAL_TAMPER2_EVENT_CB_ID :
714 hrtc->InternalTamper2EventCallback = HAL_RTCEx_InternalTamper2EventCallback;
717 case HAL_RTC_INTERNAL_TAMPER3_EVENT_CB_ID :
718 hrtc->InternalTamper3EventCallback = HAL_RTCEx_InternalTamper3EventCallback;
721 case HAL_RTC_INTERNAL_TAMPER4_EVENT_CB_ID :
722 hrtc->InternalTamper4EventCallback = HAL_RTCEx_InternalTamper4EventCallback;
725 case HAL_RTC_INTERNAL_TAMPER5_EVENT_CB_ID :
726 hrtc->InternalTamper5EventCallback = HAL_RTCEx_InternalTamper5EventCallback;
729 case HAL_RTC_INTERNAL_TAMPER6_EVENT_CB_ID :
730 hrtc->InternalTamper6EventCallback = HAL_RTCEx_InternalTamper6EventCallback;
733 case HAL_RTC_INTERNAL_TAMPER8_EVENT_CB_ID :
734 hrtc->InternalTamper8EventCallback = HAL_RTCEx_InternalTamper8EventCallback;
738 case HAL_RTC_MSPINIT_CB_ID :
742 case HAL_RTC_MSPDEINIT_CB_ID :
756 case HAL_RTC_MSPINIT_CB_ID :
760 case HAL_RTC_MSPDEINIT_CB_ID :
1009 sDate->
Month = (uint8_t)((sDate->
Month & (uint8_t)~(0x10U)) + (uint8_t)0x0AU);
1084 uint32_t datetmpreg;
1140 uint32_t subsecondtmpreg;
1259 hrtc->Instance->ALRMAR = (uint32_t)tmpreg;
1261 hrtc->Instance->ALRMASSR = subsecondtmpreg;
1296 hrtc->Instance->ALRMBR = (uint32_t)tmpreg;
1298 hrtc->Instance->ALRMBSSR = subsecondtmpreg;
1332 uint32_t subsecondtmpreg;
1449 hrtc->Instance->ALRMAR = (uint32_t)tmpreg;
1451 hrtc->Instance->ALRMASSR = subsecondtmpreg;
1487 hrtc->Instance->ALRMBR = (uint32_t)tmpreg;
1489 hrtc->Instance->ALRMBSSR = subsecondtmpreg;
1497#if defined(DUAL_CORE)
1504 __HAL_RTC_ALARM_EXTID2_ENABLE_IT();
1637 uint32_t subsecondtmpreg;
1648 tmpreg = (uint32_t)(
hrtc->Instance->ALRMAR);
1665 tmpreg = (uint32_t)(
hrtc->Instance->ALRMBR);
1698#if defined(DUAL_CORE)
1705 __HAL_RTC_ALARM_EXTID2_CLEAR_FLAG();
1713 uint32_t tmp =
hrtc->Instance->MISR;
1721#if (USE_HAL_RTC_REGISTER_CALLBACKS == 1)
1728 if((tmp & RTC_MISR_ALRBMF) != 0u)
1731 hrtc->Instance->SCR = RTC_SCR_CALRBF;
1734#if (USE_HAL_RTC_REGISTER_CALLBACKS == 1)
1750#if (USE_HAL_RTC_REGISTER_CALLBACKS == 1)
1768#if (USE_HAL_RTC_REGISTER_CALLBACKS == 1)
1811 if(((
HAL_GetTick() - tickstart) > Timeout) || (Timeout == 0U))
1867 hrtc->Instance->ICSR = ((uint32_t)(
RTC_RSF_MASK & RTC_ICSR_RESERVED_MASK));
1876 while ((
hrtc->Instance->ICSR & RTC_ICSR_RSF) == 0U)
1943 if ((
hrtc->Instance->ICSR & RTC_ICSR_INITF) == 0U)
1951 while (((
hrtc->Instance->ICSR & RTC_ICSR_INITF) == 0U) && (status !=
HAL_TIMEOUT))
2025 uint32_t bcdhigh = 0U;
2026 uint8_t bcdlow = Value;
2028 while (bcdlow >= 10U)
2034 return ((uint8_t)(bcdhigh << 4U) | bcdlow);
2045 tmp = ((Value & 0xF0U) >> 4U) * 10U;
2046 return (tmp + (Value & 0x0FU));
uint32_t HAL_GetCurrentCPUID(void)
#define CLEAR_BIT(REG, BIT)
#define SET_BIT(REG, BIT)
#define READ_BIT(REG, BIT)
#define IS_RTC_ALL_INSTANCE(INSTANCE)
uint32_t HAL_GetTick(void)
Provides a tick value in millisecond.
#define RTC_DR_DU_0
0x00000001
#define RTC_PRER_PREDIV_S
#define RTC_PRER_PREDIV_S_Pos
#define RTC_DR_WDU_0
0x00002000
#define RTC_ALRMAR_SU_Pos
#define RTC_DR_MU_0
0x00000100
#define RTC_ALRMBR_DU_Pos
#define RTC_ALRMBR_PM_Pos
#define RTC_ALRMAR_PM_Pos
#define RTC_ALRMAR_HU_Pos
#define RTC_ALRMAR_DU_Pos
#define RTC_OR_ALARMOUTTYPE
#define RTC_ALRMBR_MNU_Pos
#define RTC_ALRMAR_MNU_Pos
#define RTC_PRER_PREDIV_A
#define RTC_PRER_PREDIV_A_Pos
#define RTC_ALRMBR_SU_Pos
#define RTC_ALRMBR_HU_Pos
void HAL_RTCEx_TimeStampEventCallback(RTC_HandleTypeDef *hrtc)
void HAL_RTCEx_WakeUpTimerEventCallback(RTC_HandleTypeDef *hrtc)
void HAL_RTCEx_AlarmBEventCallback(RTC_HandleTypeDef *hrtc)
void HAL_RTCEx_Tamper3EventCallback(RTC_HandleTypeDef *hrtc)
void HAL_RTCEx_Tamper1EventCallback(RTC_HandleTypeDef *hrtc)
#define RTC_ALARMDATEWEEKDAYSEL_DATE
#define RTC_ALARMMASK_ALL
HAL_StatusTypeDef HAL_RTC_DeInit(RTC_HandleTypeDef *hrtc)
void HAL_RTC_MspDeInit(RTC_HandleTypeDef *hrtc)
RTC MSP De-Initialization This function freeze the hardware resources used in this example.
HAL_StatusTypeDef HAL_RTC_Init(RTC_HandleTypeDef *hrtc)
void HAL_RTC_MspInit(RTC_HandleTypeDef *hrtc)
RTC MSP Initialization This function configures the hardware resources used in this example.
HAL_StatusTypeDef HAL_RTC_GetDate(const RTC_HandleTypeDef *hrtc, RTC_DateTypeDef *sDate, uint32_t Format)
HAL_StatusTypeDef HAL_RTC_SetDate(RTC_HandleTypeDef *hrtc, RTC_DateTypeDef *sDate, uint32_t Format)
HAL_StatusTypeDef HAL_RTC_GetTime(const RTC_HandleTypeDef *hrtc, RTC_TimeTypeDef *sTime, uint32_t Format)
HAL_StatusTypeDef HAL_RTC_SetTime(RTC_HandleTypeDef *hrtc, RTC_TimeTypeDef *sTime, uint32_t Format)
void HAL_RTC_AlarmAEventCallback(RTC_HandleTypeDef *hrtc)
HAL_StatusTypeDef HAL_RTC_DeactivateAlarm(RTC_HandleTypeDef *hrtc, uint32_t Alarm)
HAL_StatusTypeDef HAL_RTC_SetAlarm_IT(RTC_HandleTypeDef *hrtc, RTC_AlarmTypeDef *sAlarm, uint32_t Format)
void HAL_RTC_AlarmIRQHandler(RTC_HandleTypeDef *hrtc)
HAL_StatusTypeDef HAL_RTC_GetAlarm(const RTC_HandleTypeDef *hrtc, RTC_AlarmTypeDef *sAlarm, uint32_t Alarm, uint32_t Format)
HAL_StatusTypeDef HAL_RTC_PollForAlarmAEvent(RTC_HandleTypeDef *hrtc, uint32_t Timeout)
HAL_StatusTypeDef HAL_RTC_SetAlarm(RTC_HandleTypeDef *hrtc, RTC_AlarmTypeDef *sAlarm, uint32_t Format)
HAL_StatusTypeDef HAL_RTC_WaitForSynchro(RTC_HandleTypeDef *hrtc)
HAL_RTCStateTypeDef HAL_RTC_GetState(const RTC_HandleTypeDef *hrtc)
#define __HAL_RTC_ALARMB_DISABLE(__HANDLE__)
Disable the RTC ALARMB peripheral.
#define __HAL_RTC_ALARM_EXTI_ENABLE_IT()
Enable interrupt on the RTC Alarm associated Exti line.
#define __HAL_RTC_ALARM_EXTI_CLEAR_FLAG()
Clear the RTC Alarm associated Exti line flag.
#define __HAL_RTC_ALARM_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__)
Check whether the specified RTC Alarm interrupt has been enabled or not.
#define __HAL_RTC_ALARMA_DISABLE(__HANDLE__)
Disable the RTC ALARMA peripheral.
#define __HAL_RTC_ALARMA_ENABLE(__HANDLE__)
Enable the RTC ALARMA peripheral.
#define __HAL_RTC_ALARM_CLEAR_FLAG(__HANDLE__, __FLAG__)
Clear the RTC Alarm's pending flags.
#define __HAL_RTC_ALARM_EXTI_ENABLE_RISING_EDGE()
Enable rising edge trigger on the RTC Alarm associated Exti line.
#define __HAL_RTC_WRITEPROTECTION_ENABLE(__HANDLE__)
Enable the write protection for RTC registers.
#define __HAL_RTC_ALARM_GET_FLAG(__HANDLE__, __FLAG__)
Get the selected RTC Alarm's flag status.
#define __HAL_RTC_ALARM_ENABLE_IT(__HANDLE__, __INTERRUPT__)
Enable the RTC Alarm interrupt.
#define __HAL_RTC_IS_CALENDAR_INITIALIZED(__HANDLE__)
Check whether the RTC Calendar is initialized.
#define __HAL_RTC_ALARMB_ENABLE(__HANDLE__)
Enable the RTC ALARMB peripheral.
#define __HAL_RTC_ALARM_DISABLE_IT(__HANDLE__, __INTERRUPT__)
Disable the RTC Alarm interrupt.
#define __HAL_RTC_WRITEPROTECTION_DISABLE(__HANDLE__)
Disable the write protection for RTC registers.
HAL_RTCStateTypeDef
HAL State structures definition.
@ HAL_RTC_STATE_TIMEOUT
RTC timeout state.
@ HAL_RTC_STATE_READY
RTC initialized and ready for use.
@ HAL_RTC_STATE_BUSY
RTC process is ongoing.
@ HAL_RTC_STATE_RESET
RTC not yet initialized or disabled.
#define IS_RTC_FORMAT(FORMAT)
#define IS_RTC_ALARM_MASK(MASK)
#define IS_RTC_OUTPUT_POL(POL)
#define IS_RTC_SYNCH_PREDIV(PREDIV)
#define IS_RTC_DATE(DATE)
#define IS_RTC_HOUR24(HOUR)
#define IS_RTC_DAYLIGHT_SAVING(SAVE)
#define IS_RTC_STORE_OPERATION(OPERATION)
#define IS_RTC_HOUR_FORMAT(FORMAT)
#define IS_RTC_OUTPUT_TYPE(TYPE)
#define IS_RTC_HOUR12(HOUR)
#define IS_RTC_MONTH(MONTH)
#define IS_RTC_MINUTES(MINUTES)
#define IS_RTC_ALARM_DATE_WEEKDAY_DATE(DATE)
#define IS_RTC_OUTPUT_REMAP(REMAP)
#define IS_RTC_HOURFORMAT12(PM)
#define IS_RTC_ALARM(ALARM)
#define IS_RTC_OUTPUT(OUTPUT)
#define IS_RTC_ALARM_DATE_WEEKDAY_WEEKDAY(WEEKDAY)
#define IS_RTC_ASYNCH_PREDIV(PREDIV)
#define IS_RTC_ALARM_DATE_WEEKDAY_SEL(SEL)
#define IS_RTC_SECONDS(SECONDS)
#define IS_RTC_YEAR(YEAR)
#define IS_RTC_ALARM_SUB_SECOND_MASK(MASK)
#define IS_RTC_ALARM_SUB_SECOND_VALUE(VALUE)
#define IS_RTC_WEEKDAY(WEEKDAY)
#define RTC_IT_ALRA
Enable Alarm A Interrupt.
#define RTC_IT_ALRB
Enable Alarm B Interrupt.
#define RTC_DR_RESERVED_MASK
#define RTC_ISR_RESERVED_MASK
#define RTC_TIMEOUT_VALUE
#define RTC_TR_RESERVED_MASK
HAL_StatusTypeDef RTC_ExitInitMode(RTC_HandleTypeDef *hrtc)
HAL_StatusTypeDef RTC_EnterInitMode(RTC_HandleTypeDef *hrtc)
uint8_t RTC_ByteToBcd2(uint8_t Value)
uint8_t RTC_Bcd2ToByte(uint8_t Value)
This file contains all the functions prototypes for the HAL module driver.
#define assert_param(expr)
Uncomment the line below to expanse the "assert_param" macro in the HAL drivers code.
HAL_StatusTypeDef
HAL Status structures definition.
#define __HAL_UNLOCK(__HANDLE__)
#define __HAL_LOCK(__HANDLE__)
RTC Alarm structure definition.
uint8_t AlarmDateWeekDay
Specifies the RTC Alarm Date/WeekDay.
RTC_TimeTypeDef AlarmTime
Specifies the RTC Alarm Time members.
uint32_t Alarm
Specifies the alarm .
uint32_t AlarmDateWeekDaySel
Specifies the RTC Alarm is on Date or WeekDay.
uint32_t AlarmMask
Specifies the RTC Alarm Masks.
uint32_t AlarmSubSecondMask
Specifies the RTC Alarm SubSeconds Masks.
RTC Date structure definition.
uint8_t Year
Specifies the RTC Date Year.
uint8_t Month
Specifies the RTC Date Month (in BCD format).
uint8_t Date
Specifies the RTC Date.
uint8_t WeekDay
Specifies the RTC Date WeekDay.
RTC Handle Structure definition.
RTC Time structure definition.
uint8_t Seconds
Specifies the RTC Time Seconds.
uint8_t Minutes
Specifies the RTC Time Minutes.
uint8_t TimeFormat
Specifies the RTC AM/PM Time.
uint32_t StoreOperation
Specifies RTC_StoreOperation value to be written in the BKP bit in CR register to store the operation...
uint32_t SecondFraction
Specifies the range or granularity of Sub Second register content corresponding to Synchronous pre-sc...
uint32_t DayLightSaving
Specifies RTC_DayLightSaveOperation: the value of hour adjustment.
uint32_t SubSeconds
Specifies the RTC_SSR RTC Sub Second register content.
uint8_t Hours
Specifies the RTC Time Hour.