196 #ifdef HAL_RTC_MODULE_ENABLED
251 HAL_StatusTypeDef status = HAL_ERROR;
260 assert_param(IS_RTC_ALL_INSTANCE(hrtc->Instance));
261 assert_param(IS_RTC_HOUR_FORMAT(hrtc->Init.HourFormat));
262 assert_param(IS_RTC_ASYNCH_PREDIV(hrtc->Init.AsynchPrediv));
263 assert_param(IS_RTC_SYNCH_PREDIV(hrtc->Init.SynchPrediv));
264 assert_param(IS_RTC_OUTPUT(hrtc->Init.OutPut));
265 assert_param(IS_RTC_OUTPUT_POL(hrtc->Init.OutPutPolarity));
266 assert_param(IS_RTC_OUTPUT_TYPE(hrtc->Init.OutPutType));
268 #if (USE_HAL_RTC_REGISTER_CALLBACKS == 1)
272 hrtc->Lock = HAL_UNLOCKED;
279 #if defined(RTC_TAMPER2_SUPPORT)
283 if (hrtc->MspInitCallback == NULL)
288 hrtc->MspInitCallback(hrtc);
290 if (hrtc->MspDeInitCallback == NULL)
299 hrtc->Lock = HAL_UNLOCKED;
310 if (__HAL_RTC_IS_CALENDAR_INITIALIZED(hrtc) == 0U)
313 __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
318 if (status == HAL_OK)
321 hrtc->Instance->CR &= ((uint32_t)~(RTC_CR_FMT | RTC_CR_OSEL | RTC_CR_POL));
323 hrtc->Instance->CR |= (uint32_t)(hrtc->Init.HourFormat | hrtc->Init.OutPut | hrtc->Init.OutPutPolarity);
326 hrtc->Instance->PRER = (uint32_t)(hrtc->Init.SynchPrediv);
327 hrtc->Instance->PRER |= (uint32_t)(hrtc->Init.AsynchPrediv << RTC_PRER_PREDIV_A_Pos);
333 if (status == HAL_OK)
335 hrtc->Instance->TAFCR &= (uint32_t)~RTC_OUTPUT_TYPE_PUSHPULL;
336 hrtc->Instance->TAFCR |= (uint32_t)(hrtc->Init.OutPutType);
340 __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
348 if (status == HAL_OK)
365 HAL_StatusTypeDef status = HAL_ERROR;
368 assert_param(IS_RTC_ALL_INSTANCE(hrtc->Instance));
374 __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
379 if (status == HAL_OK)
382 hrtc->Instance->TR = 0x00000000U;
383 hrtc->Instance->DR = (RTC_DR_WDU_0 | RTC_DR_MU_0 | RTC_DR_DU_0);
384 hrtc->Instance->CR &= 0x00000000U;
385 hrtc->Instance->WUTR = RTC_WUTR_WUT;
386 hrtc->Instance->PRER = (uint32_t)(RTC_PRER_PREDIV_A | 0x000000FFU);
387 hrtc->Instance->CALIBR = 0x00000000U;
388 hrtc->Instance->ALRMAR = 0x00000000U;
389 hrtc->Instance->ALRMBR = 0x00000000U;
390 hrtc->Instance->CALR = 0x00000000U;
391 hrtc->Instance->SHIFTR = 0x00000000U;
392 hrtc->Instance->ALRMASSR = 0x00000000U;
393 hrtc->Instance->ALRMBSSR = 0x00000000U;
400 __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
402 if (status == HAL_OK)
405 hrtc->Instance->TAFCR = 0x00000000U;
407 #if (USE_HAL_RTC_REGISTER_CALLBACKS == 1)
408 if (hrtc->MspDeInitCallback == NULL)
414 hrtc->MspDeInitCallback(hrtc);
429 #if (USE_HAL_RTC_REGISTER_CALLBACKS == 1)
451 HAL_StatusTypeDef status = HAL_OK;
453 if (pCallback == NULL)
466 hrtc->AlarmAEventCallback = pCallback;
470 hrtc->AlarmBEventCallback = pCallback;
474 hrtc->TimeStampEventCallback = pCallback;
478 hrtc->WakeUpTimerEventCallback = pCallback;
482 hrtc->Tamper1EventCallback = pCallback;
485 #if defined(RTC_TAMPER2_SUPPORT)
487 hrtc->Tamper2EventCallback = pCallback;
492 hrtc->MspInitCallback = pCallback;
496 hrtc->MspDeInitCallback = pCallback;
510 hrtc->MspInitCallback = pCallback;
514 hrtc->MspDeInitCallback = pCallback;
555 HAL_StatusTypeDef status = HAL_OK;
584 #if defined(RTC_TAMPER2_SUPPORT)
700 uint32_t tmpreg = 0U;
701 HAL_StatusTypeDef status;
704 assert_param(IS_RTC_FORMAT(Format));
713 if (Format == RTC_FORMAT_BIN)
715 if ((hrtc->Instance->CR & RTC_CR_FMT) != 0U)
717 assert_param(IS_RTC_HOUR12(sTime->
Hours));
718 assert_param(IS_RTC_HOURFORMAT12(sTime->
TimeFormat));
723 assert_param(IS_RTC_HOUR24(sTime->
Hours));
725 assert_param(IS_RTC_MINUTES(sTime->
Minutes));
726 assert_param(IS_RTC_SECONDS(sTime->
Seconds));
731 (((uint32_t)sTime->
TimeFormat) << RTC_TR_PM_Pos));
735 if ((hrtc->Instance->CR & RTC_CR_FMT) != 0U)
738 assert_param(IS_RTC_HOURFORMAT12(sTime->
TimeFormat));
747 tmpreg = (((uint32_t)(sTime->
Hours) << RTC_TR_HU_Pos) | \
748 ((uint32_t)(sTime->
Minutes) << RTC_TR_MNU_Pos) | \
749 ((uint32_t) sTime->
Seconds) | \
750 ((uint32_t)(sTime->
TimeFormat) << RTC_TR_PM_Pos));
754 __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
759 if (status == HAL_OK)
762 hrtc->Instance->TR = (uint32_t)(tmpreg & RTC_TR_RESERVED_MASK);
765 hrtc->Instance->CR &= (uint32_t)~RTC_CR_BKP;
774 if (status == HAL_OK)
780 __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
814 uint32_t tmpreg = 0U;
817 assert_param(IS_RTC_FORMAT(Format));
820 sTime->
SubSeconds = (uint32_t)(hrtc->Instance->SSR);
823 sTime->
SecondFraction = (uint32_t)(hrtc->Instance->PRER & RTC_PRER_PREDIV_S);
826 tmpreg = (uint32_t)(hrtc->Instance->TR & RTC_TR_RESERVED_MASK);
829 sTime->
Hours = (uint8_t)((tmpreg & (RTC_TR_HT | RTC_TR_HU)) >> RTC_TR_HU_Pos);
830 sTime->
Minutes = (uint8_t)((tmpreg & (RTC_TR_MNT | RTC_TR_MNU)) >> RTC_TR_MNU_Pos);
831 sTime->
Seconds = (uint8_t)( tmpreg & (RTC_TR_ST | RTC_TR_SU));
832 sTime->
TimeFormat = (uint8_t)((tmpreg & (RTC_TR_PM)) >> RTC_TR_PM_Pos);
835 if (Format == RTC_FORMAT_BIN)
859 uint32_t datetmpreg = 0U;
860 HAL_StatusTypeDef status;
863 assert_param(IS_RTC_FORMAT(Format));
870 if ((Format == RTC_FORMAT_BIN) && ((sDate->
Month & 0x10U) == 0x10U))
872 sDate->
Month = (uint8_t)((sDate->
Month & (uint8_t)~(0x10U)) + (uint8_t)0x0AU);
875 assert_param(IS_RTC_WEEKDAY(sDate->
WeekDay));
877 if (Format == RTC_FORMAT_BIN)
879 assert_param(IS_RTC_YEAR(sDate->
Year));
880 assert_param(IS_RTC_MONTH(sDate->
Month));
881 assert_param(IS_RTC_DATE(sDate->
Date));
886 ((uint32_t)sDate->
WeekDay << RTC_DR_WDU_Pos));
894 datetmpreg = ((((uint32_t)sDate->
Year) << RTC_DR_YU_Pos) | \
895 (((uint32_t)sDate->
Month) << RTC_DR_MU_Pos) | \
896 ((uint32_t) sDate->
Date) | \
897 (((uint32_t)sDate->
WeekDay) << RTC_DR_WDU_Pos));
901 __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
906 if (status == HAL_OK)
909 hrtc->Instance->DR = (uint32_t)(datetmpreg & RTC_DR_RESERVED_MASK);
915 if (status == HAL_OK)
921 __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
948 uint32_t datetmpreg = 0U;
951 assert_param(IS_RTC_FORMAT(Format));
954 datetmpreg = (uint32_t)(hrtc->Instance->DR & RTC_DR_RESERVED_MASK);
957 sDate->
Year = (uint8_t)((datetmpreg & (RTC_DR_YT | RTC_DR_YU)) >> RTC_DR_YU_Pos);
958 sDate->
Month = (uint8_t)((datetmpreg & (RTC_DR_MT | RTC_DR_MU)) >> RTC_DR_MU_Pos);
959 sDate->
Date = (uint8_t) (datetmpreg & (RTC_DR_DT | RTC_DR_DU));
960 sDate->
WeekDay = (uint8_t)((datetmpreg & (RTC_DR_WDU)) >> RTC_DR_WDU_Pos);
963 if (Format == RTC_FORMAT_BIN)
1006 uint32_t tickstart = 0U;
1007 uint32_t tmpreg = 0U;
1008 uint32_t subsecondtmpreg = 0U;
1011 assert_param(IS_RTC_FORMAT(Format));
1012 assert_param(IS_RTC_ALARM(sAlarm->
Alarm));
1013 assert_param(IS_RTC_ALARM_MASK(sAlarm->
AlarmMask));
1026 if (Format == RTC_FORMAT_BIN)
1028 if ((hrtc->Instance->CR & RTC_CR_FMT) != 0U)
1060 if ((hrtc->Instance->CR & RTC_CR_FMT) != 0U)
1083 tmpreg = (((uint32_t)(sAlarm->
AlarmTime.
Hours) << RTC_ALRMAR_HU_Pos) | \
1097 __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
1100 if (sAlarm->
Alarm == RTC_ALARM_A)
1103 __HAL_RTC_ALARMA_DISABLE(hrtc);
1106 __HAL_RTC_ALARM_DISABLE_IT(hrtc, RTC_IT_ALRA);
1109 __HAL_RTC_ALARM_CLEAR_FLAG(hrtc, RTC_FLAG_ALRAF);
1115 while (__HAL_RTC_ALARM_GET_FLAG(hrtc, RTC_FLAG_ALRAWF) == 0U)
1117 if ((
HAL_GetTick() - tickstart) > RTC_TIMEOUT_VALUE)
1120 __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
1131 hrtc->Instance->ALRMAR = (uint32_t)tmpreg;
1133 hrtc->Instance->ALRMASSR = subsecondtmpreg;
1135 __HAL_RTC_ALARMA_ENABLE(hrtc);
1140 __HAL_RTC_ALARMB_DISABLE(hrtc);
1143 __HAL_RTC_ALARM_DISABLE_IT(hrtc, RTC_IT_ALRB);
1146 __HAL_RTC_ALARM_CLEAR_FLAG(hrtc, RTC_FLAG_ALRBF);
1152 while (__HAL_RTC_ALARM_GET_FLAG(hrtc, RTC_FLAG_ALRBWF) == 0U)
1154 if ((
HAL_GetTick() - tickstart) > RTC_TIMEOUT_VALUE)
1157 __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
1168 hrtc->Instance->ALRMBR = (uint32_t)tmpreg;
1170 hrtc->Instance->ALRMBSSR = subsecondtmpreg;
1172 __HAL_RTC_ALARMB_ENABLE(hrtc);
1176 __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
1203 __IO uint32_t count = RTC_TIMEOUT_VALUE * (SystemCoreClock / 32U / 1000U);
1204 uint32_t tmpreg = 0U;
1205 uint32_t subsecondtmpreg = 0U;
1208 assert_param(IS_RTC_FORMAT(Format));
1209 assert_param(IS_RTC_ALARM(sAlarm->
Alarm));
1210 assert_param(IS_RTC_ALARM_MASK(sAlarm->
AlarmMask));
1223 if (Format == RTC_FORMAT_BIN)
1225 if ((hrtc->Instance->CR & RTC_CR_FMT) != 0U)
1257 if ((hrtc->Instance->CR & RTC_CR_FMT) != 0U)
1280 tmpreg = (((uint32_t)(sAlarm->
AlarmTime.
Hours) << RTC_ALRMAR_HU_Pos) | \
1294 __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
1297 if (sAlarm->
Alarm == RTC_ALARM_A)
1300 __HAL_RTC_ALARMA_DISABLE(hrtc);
1303 __HAL_RTC_ALARM_CLEAR_FLAG(hrtc, RTC_FLAG_ALRAF);
1312 __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
1321 }
while (__HAL_RTC_ALARM_GET_FLAG(hrtc, RTC_FLAG_ALRAWF) == 0U);
1323 hrtc->Instance->ALRMAR = (uint32_t)tmpreg;
1325 hrtc->Instance->ALRMASSR = subsecondtmpreg;
1327 __HAL_RTC_ALARMA_ENABLE(hrtc);
1329 __HAL_RTC_ALARM_ENABLE_IT(hrtc, RTC_IT_ALRA);
1334 __HAL_RTC_ALARMB_DISABLE(hrtc);
1337 __HAL_RTC_ALARM_CLEAR_FLAG(hrtc, RTC_FLAG_ALRBF);
1340 count = RTC_TIMEOUT_VALUE * (SystemCoreClock / 32U / 1000U);
1349 __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
1358 }
while (__HAL_RTC_ALARM_GET_FLAG(hrtc, RTC_FLAG_ALRBWF) == 0U);
1360 hrtc->Instance->ALRMBR = (uint32_t)tmpreg;
1362 hrtc->Instance->ALRMBSSR = subsecondtmpreg;
1364 __HAL_RTC_ALARMB_ENABLE(hrtc);
1366 __HAL_RTC_ALARM_ENABLE_IT(hrtc, RTC_IT_ALRB);
1370 __HAL_RTC_ALARM_EXTI_ENABLE_IT();
1371 __HAL_RTC_ALARM_EXTI_ENABLE_RISING_EDGE();
1374 __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
1397 uint32_t tickstart = 0U;
1400 assert_param(IS_RTC_ALARM(Alarm));
1408 __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
1410 if (Alarm == RTC_ALARM_A)
1413 __HAL_RTC_ALARMA_DISABLE(hrtc);
1416 __HAL_RTC_ALARM_DISABLE_IT(hrtc, RTC_IT_ALRA);
1422 while (__HAL_RTC_ALARM_GET_FLAG(hrtc, RTC_FLAG_ALRAWF) == 0U)
1424 if ((
HAL_GetTick() - tickstart) > RTC_TIMEOUT_VALUE)
1427 __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
1441 __HAL_RTC_ALARMB_DISABLE(hrtc);
1444 __HAL_RTC_ALARM_DISABLE_IT(hrtc, RTC_IT_ALRB);
1450 while (__HAL_RTC_ALARM_GET_FLAG(hrtc, RTC_FLAG_ALRBWF) == 0U)
1452 if ((
HAL_GetTick() - tickstart) > RTC_TIMEOUT_VALUE)
1455 __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
1468 __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
1495 uint32_t tmpreg = 0U;
1496 uint32_t subsecondtmpreg = 0U;
1499 assert_param(IS_RTC_FORMAT(Format));
1500 assert_param(IS_RTC_ALARM(Alarm));
1502 if (Alarm == RTC_ALARM_A)
1504 sAlarm->
Alarm = RTC_ALARM_A;
1506 tmpreg = (uint32_t)(hrtc->Instance->ALRMAR);
1507 subsecondtmpreg = (uint32_t)((hrtc->Instance->ALRMASSR) & RTC_ALRMASSR_SS);
1511 sAlarm->
Alarm = RTC_ALARM_B;
1513 tmpreg = (uint32_t)(hrtc->Instance->ALRMBR);
1514 subsecondtmpreg = (uint32_t)((hrtc->Instance->ALRMBSSR) & RTC_ALRMBSSR_SS);
1518 sAlarm->
AlarmTime.
Hours = (uint8_t) ((tmpreg & (RTC_ALRMAR_HT | RTC_ALRMAR_HU)) >> RTC_ALRMAR_HU_Pos);
1519 sAlarm->
AlarmTime.
Minutes = (uint8_t) ((tmpreg & (RTC_ALRMAR_MNT | RTC_ALRMAR_MNU)) >> RTC_ALRMAR_MNU_Pos);
1520 sAlarm->
AlarmTime.
Seconds = (uint8_t) ( tmpreg & (RTC_ALRMAR_ST | RTC_ALRMAR_SU));
1523 sAlarm->
AlarmDateWeekDay = (uint8_t) ((tmpreg & (RTC_ALRMAR_DT | RTC_ALRMAR_DU)) >> RTC_ALRMAR_DU_Pos);
1525 sAlarm->
AlarmMask = (uint32_t) (tmpreg & RTC_ALARMMASK_ALL);
1527 if (Format == RTC_FORMAT_BIN)
1547 __HAL_RTC_ALARM_EXTI_CLEAR_FLAG();
1550 if (__HAL_RTC_ALARM_GET_IT_SOURCE(hrtc, RTC_IT_ALRA) != 0U)
1553 if (__HAL_RTC_ALARM_GET_FLAG(hrtc, RTC_FLAG_ALRAF) != 0U)
1556 __HAL_RTC_ALARM_CLEAR_FLAG(hrtc, RTC_FLAG_ALRAF);
1559 #if (USE_HAL_RTC_REGISTER_CALLBACKS == 1)
1560 hrtc->AlarmAEventCallback(hrtc);
1568 if (__HAL_RTC_ALARM_GET_IT_SOURCE(hrtc, RTC_IT_ALRB) != 0U)
1571 if (__HAL_RTC_ALARM_GET_FLAG(hrtc, RTC_FLAG_ALRBF) != 0U)
1574 __HAL_RTC_ALARM_CLEAR_FLAG(hrtc, RTC_FLAG_ALRBF);
1577 #if (USE_HAL_RTC_REGISTER_CALLBACKS == 1)
1578 hrtc->AlarmBEventCallback(hrtc);
1614 uint32_t tickstart = 0U;
1620 while (__HAL_RTC_ALARM_GET_FLAG(hrtc, RTC_FLAG_ALRAF) == 0U)
1622 if (Timeout != HAL_MAX_DELAY)
1624 if ((Timeout == 0U) || ((
HAL_GetTick() - tickstart) > Timeout))
1633 __HAL_RTC_ALARM_CLEAR_FLAG(hrtc, RTC_FLAG_ALRAF);
1678 uint32_t tickstart = 0U;
1681 hrtc->Instance->ISR = ((uint32_t)(RTC_RSF_MASK & RTC_ISR_RESERVED_MASK));
1687 while ((hrtc->Instance->ISR & RTC_ISR_RSF) == 0U)
1689 if ((
HAL_GetTick() - tickstart) > RTC_TIMEOUT_VALUE)
1707 __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
1708 SET_BIT(hrtc->Instance->CR, RTC_CR_ADD1H);
1709 __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
1721 __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
1722 SET_BIT(hrtc->Instance->CR, RTC_CR_SUB1H);
1723 __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
1735 __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
1736 SET_BIT(hrtc->Instance->CR, RTC_CR_BKP);
1737 __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
1748 __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
1749 CLEAR_BIT(hrtc->Instance->CR, RTC_CR_BKP);
1750 __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
1760 return READ_BIT(hrtc->Instance->CR, RTC_CR_BKP);
1815 uint32_t tickstart = 0U;
1816 HAL_StatusTypeDef status = HAL_OK;
1819 if (READ_BIT(hrtc->Instance->ISR, RTC_ISR_INITF) == 0U)
1822 SET_BIT(hrtc->Instance->ISR, RTC_ISR_INIT);
1828 while ((READ_BIT(hrtc->Instance->ISR, RTC_ISR_INITF) == 0U) && (status != HAL_ERROR))
1830 if ((
HAL_GetTick() - tickstart) > RTC_TIMEOUT_VALUE)
1850 HAL_StatusTypeDef status = HAL_OK;
1853 CLEAR_BIT(hrtc->Instance->ISR, RTC_ISR_INIT);
1856 if (READ_BIT(hrtc->Instance->CR, RTC_CR_BYPSHAD) == 0U)
1876 uint32_t bcdhigh = 0U;
1878 while (number >= 10U)
1884 return ((uint8_t)(bcdhigh << 4U) | number);
1895 tens = (((uint32_t)number & 0xF0U) >> 4U) * 10U;
1896 return (uint8_t)(tens + ((uint32_t)number & 0x0FU));
uint32_t HAL_GetTick(void)
Provides a tick value in millisecond.
void HAL_RTCEx_TimeStampEventCallback(RTC_HandleTypeDef *hrtc)
Timestamp callback.
void HAL_RTCEx_Tamper1EventCallback(RTC_HandleTypeDef *hrtc)
Tamper 1 callback.
void HAL_RTCEx_Tamper2EventCallback(RTC_HandleTypeDef *hrtc)
Tamper 2 callback.
void HAL_RTCEx_WakeUpTimerEventCallback(RTC_HandleTypeDef *hrtc)
Wakeup Timer callback.
void HAL_RTCEx_AlarmBEventCallback(RTC_HandleTypeDef *hrtc)
Alarm B callback.
HAL_StatusTypeDef HAL_RTC_DeInit(RTC_HandleTypeDef *hrtc)
DeInitializes the RTC peripheral.
void HAL_RTC_MspDeInit(RTC_HandleTypeDef *hrtc)
DeInitializes the RTC MSP.
HAL_StatusTypeDef HAL_RTC_Init(RTC_HandleTypeDef *hrtc)
Initializes the RTC peripheral.
void HAL_RTC_MspInit(RTC_HandleTypeDef *hrtc)
Initializes the RTC MSP.
HAL_StatusTypeDef HAL_RTC_UnRegisterCallback(RTC_HandleTypeDef *hrtc, HAL_RTC_CallbackIDTypeDef CallbackID)
Unregisters an RTC Callback RTC callback is redirected to the weak predefined callback.
HAL_StatusTypeDef HAL_RTC_RegisterCallback(RTC_HandleTypeDef *hrtc, HAL_RTC_CallbackIDTypeDef CallbackID, pRTC_CallbackTypeDef pCallback)
Registers a User RTC Callback To be used instead of the weak predefined callback.
HAL_StatusTypeDef HAL_RTC_GetDate(RTC_HandleTypeDef *hrtc, RTC_DateTypeDef *sDate, uint32_t Format)
Gets RTC current date.
HAL_StatusTypeDef HAL_RTC_SetDate(RTC_HandleTypeDef *hrtc, RTC_DateTypeDef *sDate, uint32_t Format)
Sets RTC current date.
HAL_StatusTypeDef HAL_RTC_GetTime(RTC_HandleTypeDef *hrtc, RTC_TimeTypeDef *sTime, uint32_t Format)
Gets RTC current time.
HAL_StatusTypeDef HAL_RTC_SetTime(RTC_HandleTypeDef *hrtc, RTC_TimeTypeDef *sTime, uint32_t Format)
Sets RTC current time.
void HAL_RTC_AlarmAEventCallback(RTC_HandleTypeDef *hrtc)
Alarm A callback.
HAL_StatusTypeDef HAL_RTC_DeactivateAlarm(RTC_HandleTypeDef *hrtc, uint32_t Alarm)
Deactivates the specified RTC Alarm.
HAL_StatusTypeDef HAL_RTC_GetAlarm(RTC_HandleTypeDef *hrtc, RTC_AlarmTypeDef *sAlarm, uint32_t Alarm, uint32_t Format)
Gets the RTC Alarm value and masks.
HAL_StatusTypeDef HAL_RTC_SetAlarm_IT(RTC_HandleTypeDef *hrtc, RTC_AlarmTypeDef *sAlarm, uint32_t Format)
Sets the specified RTC Alarm with Interrupt.
void HAL_RTC_AlarmIRQHandler(RTC_HandleTypeDef *hrtc)
Handles Alarm interrupt request.
HAL_StatusTypeDef HAL_RTC_PollForAlarmAEvent(RTC_HandleTypeDef *hrtc, uint32_t Timeout)
Handles Alarm A Polling request.
HAL_StatusTypeDef HAL_RTC_SetAlarm(RTC_HandleTypeDef *hrtc, RTC_AlarmTypeDef *sAlarm, uint32_t Format)
Sets the specified RTC Alarm.
void HAL_RTC_DST_Add1Hour(RTC_HandleTypeDef *hrtc)
Daylight Saving Time, adds one hour to the calendar in one single operation without going through the...
HAL_StatusTypeDef HAL_RTC_WaitForSynchro(RTC_HandleTypeDef *hrtc)
Waits until the RTC Time and Date registers (RTC_TR and RTC_DR) are synchronized with RTC APB clock.
void HAL_RTC_DST_Sub1Hour(RTC_HandleTypeDef *hrtc)
Daylight Saving Time, subtracts one hour from the calendar in one single operation without going thro...
uint32_t HAL_RTC_DST_ReadStoreOperation(RTC_HandleTypeDef *hrtc)
Daylight Saving Time, reads the store operation bit.
void HAL_RTC_DST_ClearStoreOperation(RTC_HandleTypeDef *hrtc)
Daylight Saving Time, clears the store operation bit.
void HAL_RTC_DST_SetStoreOperation(RTC_HandleTypeDef *hrtc)
Daylight Saving Time, sets the store operation bit.
HAL_RTCStateTypeDef HAL_RTC_GetState(RTC_HandleTypeDef *hrtc)
Returns the RTC state.
RTC_TimeTypeDef AlarmTime
uint32_t AlarmDateWeekDaySel
uint32_t AlarmSubSecondMask
HAL_RTCStateTypeDef
HAL State structures definition.
struct __RTC_HandleTypeDef else typedef struct endif RTC_HandleTypeDef
RTC Handle Structure definition.
void(* pRTC_CallbackTypeDef)(RTC_HandleTypeDef *hrtc)
HAL RTC Callback pointer definition.
HAL_RTC_CallbackIDTypeDef
HAL RTC Callback ID enumeration definition.
@ HAL_RTC_ALARM_B_EVENT_CB_ID
@ HAL_RTC_TAMPER2_EVENT_CB_ID
@ HAL_RTC_WAKEUPTIMER_EVENT_CB_ID
@ HAL_RTC_ALARM_A_EVENT_CB_ID
@ HAL_RTC_MSPDEINIT_CB_ID
@ HAL_RTC_TIMESTAMP_EVENT_CB_ID
@ HAL_RTC_TAMPER1_EVENT_CB_ID
RTC Alarm structure definition.
RTC Date structure definition.
RTC Time structure definition.
uint8_t RTC_ByteToBcd2(uint8_t number)
Converts a 2-digit number from decimal to BCD format.
HAL_StatusTypeDef RTC_ExitInitMode(RTC_HandleTypeDef *hrtc)
Exits the RTC Initialization mode.
HAL_StatusTypeDef RTC_EnterInitMode(RTC_HandleTypeDef *hrtc)
Enters the RTC Initialization mode.
uint8_t RTC_Bcd2ToByte(uint8_t number)
Converts a 2-digit number from BCD to decimal format.
This file contains all the functions prototypes for the HAL module driver.