137 #ifdef HAL_RTC_MODULE_ENABLED
188 uint32_t tmpreg = 0U;
191 assert_param(IS_TIMESTAMP_EDGE(RTC_TimeStampEdge));
192 assert_param(IS_RTC_TIMESTAMP_PIN(RTC_TimeStampPin));
200 hrtc->Instance->TAFCR &= (uint32_t)~RTC_TAFCR_TSINSEL;
201 hrtc->Instance->TAFCR |= (uint32_t)(RTC_TimeStampPin);
204 tmpreg = (uint32_t)(hrtc->Instance->CR & (uint32_t)~(RTC_CR_TSEDGE | RTC_CR_TSE));
207 tmpreg |= RTC_TimeStampEdge;
210 __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
213 hrtc->Instance->CR = (uint32_t)tmpreg;
216 __HAL_RTC_TIMESTAMP_CLEAR_FLAG(hrtc, RTC_FLAG_TSF);
219 __HAL_RTC_TIMESTAMP_CLEAR_FLAG(hrtc, RTC_FLAG_TSOVF);
222 __HAL_RTC_TIMESTAMP_ENABLE(hrtc);
225 __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
260 uint32_t tmpreg = 0U;
263 assert_param(IS_TIMESTAMP_EDGE(RTC_TimeStampEdge));
264 assert_param(IS_RTC_TIMESTAMP_PIN(RTC_TimeStampPin));
272 hrtc->Instance->TAFCR &= (uint32_t)~RTC_TAFCR_TSINSEL;
273 hrtc->Instance->TAFCR |= (uint32_t)(RTC_TimeStampPin);
276 tmpreg = (uint32_t)(hrtc->Instance->CR & (uint32_t)~(RTC_CR_TSEDGE | RTC_CR_TSE));
279 tmpreg |= RTC_TimeStampEdge;
282 __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
285 hrtc->Instance->CR = (uint32_t)tmpreg;
288 __HAL_RTC_TIMESTAMP_CLEAR_FLAG(hrtc, RTC_FLAG_TSF);
291 __HAL_RTC_TIMESTAMP_CLEAR_FLAG(hrtc, RTC_FLAG_TSOVF);
294 __HAL_RTC_TIMESTAMP_ENABLE(hrtc);
297 __HAL_RTC_TIMESTAMP_ENABLE_IT(hrtc, RTC_IT_TS);
300 __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
303 __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_IT();
304 __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_RISING_EDGE();
323 uint32_t tmpreg = 0U;
331 __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
334 __HAL_RTC_TIMESTAMP_DISABLE_IT(hrtc, RTC_IT_TS);
337 tmpreg = (uint32_t)(hrtc->Instance->CR & (uint32_t)~(RTC_CR_TSEDGE | RTC_CR_TSE));
340 hrtc->Instance->CR = (uint32_t)tmpreg;
343 __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
367 uint32_t tmptime = 0U;
368 uint32_t tmpdate = 0U;
371 assert_param(IS_RTC_FORMAT(Format));
374 tmptime = (uint32_t)(hrtc->Instance->TSTR & RTC_TR_RESERVED_MASK);
375 tmpdate = (uint32_t)(hrtc->Instance->TSDR & RTC_DR_RESERVED_MASK);
378 sTimeStamp->
Hours = (uint8_t)((tmptime & (RTC_TSTR_HT | RTC_TSTR_HU)) >> RTC_TSTR_HU_Pos);
379 sTimeStamp->
Minutes = (uint8_t)((tmptime & (RTC_TSTR_MNT | RTC_TSTR_MNU)) >> RTC_TSTR_MNU_Pos);
380 sTimeStamp->
Seconds = (uint8_t)((tmptime & (RTC_TSTR_ST | RTC_TSTR_SU)) >> RTC_TSTR_SU_Pos);
381 sTimeStamp->
TimeFormat = (uint8_t)((tmptime & (RTC_TSTR_PM)) >> RTC_TSTR_PM_Pos);
382 sTimeStamp->
SubSeconds = (uint32_t) hrtc->Instance->TSSSR;
385 sTimeStampDate->
Year = 0U;
386 sTimeStampDate->
Month = (uint8_t)((tmpdate & (RTC_TSDR_MT | RTC_TSDR_MU)) >> RTC_TSDR_MU_Pos);
387 sTimeStampDate->
Date = (uint8_t)((tmpdate & (RTC_TSDR_DT | RTC_TSDR_DU)) >> RTC_TSDR_DU_Pos);
388 sTimeStampDate->
WeekDay = (uint8_t)((tmpdate & (RTC_TSDR_WDU)) >> RTC_TSDR_WDU_Pos);
391 if (Format == RTC_FORMAT_BIN)
405 __HAL_RTC_TIMESTAMP_CLEAR_FLAG(hrtc, RTC_FLAG_TSF);
420 uint32_t tmpreg = 0U;
423 assert_param(IS_RTC_TAMPER(sTamper->
Tamper));
425 assert_param(IS_RTC_TAMPER_TRIGGER(sTamper->
Trigger));
426 assert_param(IS_RTC_TAMPER_FILTER(sTamper->
Filter));
427 assert_param(IS_RTC_TAMPER_FILTER_CONFIG_CORRECT(sTamper->
Filter, sTamper->
Trigger));
430 assert_param(IS_RTC_TAMPER_PULLUP_STATE(sTamper->
TamperPullUp));
439 tmpreg = hrtc->Instance->TAFCR;
442 tmpreg |= (sTamper->
Tamper);
446 if (sTamper->
Trigger == RTC_TAMPERTRIGGER_FALLINGEDGE)
449 tmpreg |= (uint32_t)(sTamper->
Tamper << 1U);
454 tmpreg &= (uint32_t)~(sTamper->
Tamper << 1U);
458 tmpreg &= ~(RTC_TAMPERFILTER_MASK | \
459 RTC_TAMPERSAMPLINGFREQ_RTCCLK_MASK | \
460 RTC_TAMPERPRECHARGEDURATION_MASK | \
461 RTC_TAMPER_PULLUP_MASK | \
462 RTC_TAFCR_TAMP1INSEL | \
463 RTC_TIMESTAMPONTAMPERDETECTION_MASK);
466 tmpreg |= ((uint32_t)sTamper->
Filter | \
474 tmpreg &= (uint32_t)~RTC_TAFCR_TAMPIE;
477 hrtc->Instance->TAFCR = tmpreg;
497 uint32_t tmpreg = 0U;
500 assert_param(IS_RTC_TAMPER(sTamper->
Tamper));
502 assert_param(IS_RTC_TAMPER_TRIGGER(sTamper->
Trigger));
503 assert_param(IS_RTC_TAMPER_FILTER(sTamper->
Filter));
504 assert_param(IS_RTC_TAMPER_FILTER_CONFIG_CORRECT(sTamper->
Filter, sTamper->
Trigger));
507 assert_param(IS_RTC_TAMPER_PULLUP_STATE(sTamper->
TamperPullUp));
516 tmpreg = hrtc->Instance->TAFCR;
519 tmpreg |= (sTamper->
Tamper);
523 if (sTamper->
Trigger == RTC_TAMPERTRIGGER_FALLINGEDGE)
526 tmpreg |= (uint32_t)(sTamper->
Tamper << 1U);
531 tmpreg &= (uint32_t)~(sTamper->
Tamper << 1U);
535 tmpreg &= ~(RTC_TAMPERFILTER_MASK | \
536 RTC_TAMPERSAMPLINGFREQ_RTCCLK_MASK | \
537 RTC_TAMPERPRECHARGEDURATION_MASK | \
538 RTC_TAMPER_PULLUP_MASK | \
539 RTC_TAFCR_TAMP1INSEL | \
540 RTC_TIMESTAMPONTAMPERDETECTION_MASK);
543 tmpreg |= ((uint32_t)sTamper->
Filter | \
551 tmpreg |= (uint32_t)RTC_TAFCR_TAMPIE;
554 hrtc->Instance->TAFCR = tmpreg;
557 __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_IT();
558 __HAL_RTC_TAMPER_TIMESTAMP_EXTI_ENABLE_RISING_EDGE();
582 assert_param(IS_RTC_TAMPER(Tamper));
590 hrtc->Instance->TAFCR &= (uint32_t)~Tamper;
609 __HAL_RTC_TAMPER_TIMESTAMP_EXTI_CLEAR_FLAG();
612 if (__HAL_RTC_TIMESTAMP_GET_IT_SOURCE(hrtc, RTC_IT_TS) != 0U)
615 if (__HAL_RTC_TIMESTAMP_GET_FLAG(hrtc, RTC_FLAG_TSF) != 0U)
618 #if (USE_HAL_RTC_REGISTER_CALLBACKS == 1)
619 hrtc->TimeStampEventCallback(hrtc);
626 __HAL_RTC_TIMESTAMP_CLEAR_FLAG(hrtc, RTC_FLAG_TSF);
631 if (__HAL_RTC_TAMPER_GET_IT_SOURCE(hrtc, RTC_IT_TAMP) != 0U)
634 if (__HAL_RTC_TAMPER_GET_FLAG(hrtc, RTC_FLAG_TAMP1F) != 0U)
637 __HAL_RTC_TAMPER_CLEAR_FLAG(hrtc, RTC_FLAG_TAMP1F);
640 #if (USE_HAL_RTC_REGISTER_CALLBACKS == 1)
641 hrtc->Tamper1EventCallback(hrtc);
648 #if defined(RTC_TAMPER2_SUPPORT)
650 if (__HAL_RTC_TAMPER_GET_IT_SOURCE(hrtc, RTC_IT_TAMP) != 0U)
653 if (__HAL_RTC_TAMPER_GET_FLAG(hrtc, RTC_FLAG_TAMP2F) != 0U)
656 __HAL_RTC_TAMPER_CLEAR_FLAG(hrtc, RTC_FLAG_TAMP2F);
659 #if (USE_HAL_RTC_REGISTER_CALLBACKS == 1)
660 hrtc->Tamper2EventCallback(hrtc);
704 #if defined(RTC_TAMPER2_SUPPORT)
731 uint32_t tickstart = 0U;
736 while (__HAL_RTC_TIMESTAMP_GET_FLAG(hrtc, RTC_FLAG_TSF) == 0U)
738 if (Timeout != HAL_MAX_DELAY)
740 if ((Timeout == 0U) || ((
HAL_GetTick() - tickstart) > Timeout))
747 if (__HAL_RTC_TIMESTAMP_GET_FLAG(hrtc, RTC_FLAG_TSOVF) != 0U)
750 __HAL_RTC_TIMESTAMP_CLEAR_FLAG(hrtc, RTC_FLAG_TSOVF);
774 uint32_t tickstart = 0U;
780 while (__HAL_RTC_TAMPER_GET_FLAG(hrtc, RTC_FLAG_TAMP1F) == 0U)
782 if (Timeout != HAL_MAX_DELAY)
784 if ((Timeout == 0U) || ((
HAL_GetTick() - tickstart) > Timeout))
793 __HAL_RTC_TAMPER_CLEAR_FLAG(hrtc, RTC_FLAG_TAMP1F);
801 #if defined(RTC_TAMPER2_SUPPORT)
811 uint32_t tickstart = 0U;
817 while (__HAL_RTC_TAMPER_GET_FLAG(hrtc, RTC_FLAG_TAMP2F) == 0U)
819 if (Timeout != HAL_MAX_DELAY)
821 if ((Timeout == 0U) || ((
HAL_GetTick() - tickstart) > Timeout))
830 __HAL_RTC_TAMPER_CLEAR_FLAG(hrtc, RTC_FLAG_TAMP2F);
867 uint32_t tickstart = 0U;
870 assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock));
871 assert_param(IS_RTC_WAKEUP_COUNTER(WakeUpCounter));
879 __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
882 if ((hrtc->Instance->CR & RTC_CR_WUTE) != 0U)
887 while (__HAL_RTC_WAKEUPTIMER_GET_FLAG(hrtc, RTC_FLAG_WUTWF) != 0U)
889 if ((
HAL_GetTick() - tickstart) > RTC_TIMEOUT_VALUE)
892 __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
905 __HAL_RTC_WAKEUPTIMER_DISABLE(hrtc);
908 __HAL_RTC_WAKEUPTIMER_CLEAR_FLAG(hrtc, RTC_FLAG_WUTF);
914 while (__HAL_RTC_WAKEUPTIMER_GET_FLAG(hrtc, RTC_FLAG_WUTWF) == 0U)
916 if ((
HAL_GetTick() - tickstart) > RTC_TIMEOUT_VALUE)
919 __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
931 hrtc->Instance->CR &= (uint32_t)~RTC_CR_WUCKSEL;
934 hrtc->Instance->CR |= (uint32_t)WakeUpClock;
937 hrtc->Instance->WUTR = (uint32_t)WakeUpCounter;
940 __HAL_RTC_WAKEUPTIMER_ENABLE(hrtc);
943 __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
963 __IO uint32_t count = RTC_TIMEOUT_VALUE * (SystemCoreClock / 32U / 1000U);
966 assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock));
967 assert_param(IS_RTC_WAKEUP_COUNTER(WakeUpCounter));
975 __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
978 if ((hrtc->Instance->CR & RTC_CR_WUTE) != 0U)
987 __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
996 }
while (__HAL_RTC_WAKEUPTIMER_GET_FLAG(hrtc, RTC_FLAG_WUTWF) != 0U);
1000 __HAL_RTC_WAKEUPTIMER_DISABLE(hrtc);
1003 __HAL_RTC_WAKEUPTIMER_CLEAR_FLAG(hrtc, RTC_FLAG_WUTF);
1006 count = RTC_TIMEOUT_VALUE * (SystemCoreClock / 32U / 1000U);
1015 __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
1024 }
while (__HAL_RTC_WAKEUPTIMER_GET_FLAG(hrtc, RTC_FLAG_WUTWF) == 0U);
1027 hrtc->Instance->CR &= (uint32_t)~RTC_CR_WUCKSEL;
1030 hrtc->Instance->CR |= (uint32_t)WakeUpClock;
1033 hrtc->Instance->WUTR = (uint32_t)WakeUpCounter;
1036 __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_IT();
1037 __HAL_RTC_WAKEUPTIMER_EXTI_ENABLE_RISING_EDGE();
1040 __HAL_RTC_WAKEUPTIMER_ENABLE_IT(hrtc, RTC_IT_WUT);
1043 __HAL_RTC_WAKEUPTIMER_ENABLE(hrtc);
1046 __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
1064 uint32_t tickstart = 0U;
1072 __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
1075 __HAL_RTC_WAKEUPTIMER_DISABLE(hrtc);
1078 __HAL_RTC_WAKEUPTIMER_DISABLE_IT(hrtc, RTC_IT_WUT);
1084 while (__HAL_RTC_WAKEUPTIMER_GET_FLAG(hrtc, RTC_FLAG_WUTWF) == 0U)
1086 if ((
HAL_GetTick() - tickstart) > RTC_TIMEOUT_VALUE)
1089 __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
1101 __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
1120 return ((uint32_t)(hrtc->Instance->WUTR & RTC_WUTR_WUT));
1137 __HAL_RTC_WAKEUPTIMER_EXTI_CLEAR_FLAG();
1140 if (__HAL_RTC_WAKEUPTIMER_GET_FLAG(hrtc, RTC_FLAG_WUTF) != 0U)
1143 __HAL_RTC_WAKEUPTIMER_CLEAR_FLAG(hrtc, RTC_FLAG_WUTF);
1146 #if (USE_HAL_RTC_REGISTER_CALLBACKS == 1)
1147 hrtc->WakeUpTimerEventCallback(hrtc);
1182 uint32_t tickstart = 0U;
1187 while (__HAL_RTC_WAKEUPTIMER_GET_FLAG(hrtc, RTC_FLAG_WUTF) == 0U)
1189 if (Timeout != HAL_MAX_DELAY)
1191 if ((Timeout == 0U) || ((
HAL_GetTick() - tickstart) > Timeout))
1200 __HAL_RTC_WAKEUPTIMER_CLEAR_FLAG(hrtc, RTC_FLAG_WUTF);
1253 assert_param(IS_RTC_BKP(BackupRegister));
1255 tmp = (uint32_t) & (hrtc->Instance->BKP0R);
1256 tmp += (BackupRegister * 4U);
1259 *(__IO uint32_t *)tmp = (uint32_t)Data;
1276 assert_param(IS_RTC_BKP(BackupRegister));
1278 tmp = (uint32_t) & (hrtc->Instance->BKP0R);
1279 tmp += (BackupRegister * 4U);
1282 return (*(__IO uint32_t *)tmp);
1304 HAL_StatusTypeDef status;
1307 assert_param(IS_RTC_CALIB_SIGN(CalibSign));
1308 assert_param(IS_RTC_CALIB_VALUE(Value));
1316 __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
1321 if (status == HAL_OK)
1324 __HAL_RTC_COARSE_CALIB_ENABLE(hrtc);
1327 hrtc->Instance->CALIBR = (uint32_t)(CalibSign | Value);
1333 if (status == HAL_OK)
1339 __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
1355 HAL_StatusTypeDef status;
1363 __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
1368 if (status == HAL_OK)
1371 __HAL_RTC_COARSE_CALIB_DISABLE(hrtc);
1377 if (status == HAL_OK)
1383 __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
1413 uint32_t tickstart = 0U;
1416 assert_param(IS_RTC_SMOOTH_CALIB_PERIOD(SmoothCalibPeriod));
1417 assert_param(IS_RTC_SMOOTH_CALIB_PLUS(SmoothCalibPlusPulses));
1418 assert_param(IS_RTC_SMOOTH_CALIB_MINUS(SmoothCalibMinusPulsesValue));
1426 __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
1429 if ((hrtc->Instance->ISR & RTC_ISR_RECALPF) != 0U)
1435 while ((hrtc->Instance->ISR & RTC_ISR_RECALPF) != 0U)
1437 if ((
HAL_GetTick() - tickstart) > RTC_TIMEOUT_VALUE)
1440 __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
1454 hrtc->Instance->CALR = (uint32_t)((uint32_t)SmoothCalibPeriod | \
1455 (uint32_t)SmoothCalibPlusPulses | \
1456 (uint32_t)SmoothCalibMinusPulsesValue);
1459 __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
1485 uint32_t tickstart = 0U;
1488 assert_param(IS_RTC_SHIFT_ADD1S(ShiftAdd1S));
1489 assert_param(IS_RTC_SHIFT_SUBFS(ShiftSubFS));
1497 __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
1503 while ((hrtc->Instance->ISR & RTC_ISR_SHPF) != 0U)
1505 if ((
HAL_GetTick() - tickstart) > RTC_TIMEOUT_VALUE)
1508 __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
1520 if ((hrtc->Instance->CR & RTC_CR_REFCKON) == 0U)
1523 hrtc->Instance->SHIFTR = (uint32_t)(uint32_t)(ShiftSubFS) | (uint32_t)(ShiftAdd1S);
1526 if ((hrtc->Instance->CR & RTC_CR_BYPSHAD) == 0U)
1531 __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
1545 __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
1557 __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
1581 assert_param(IS_RTC_CALIB_OUTPUT(CalibOutput));
1589 __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
1592 hrtc->Instance->CR &= (uint32_t)~RTC_CR_COSEL;
1595 hrtc->Instance->CR |= (uint32_t)CalibOutput;
1597 __HAL_RTC_CALIBRATION_OUTPUT_ENABLE(hrtc);
1600 __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
1625 __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
1627 __HAL_RTC_CALIBRATION_OUTPUT_DISABLE(hrtc);
1630 __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
1649 HAL_StatusTypeDef status;
1657 __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
1662 if (status == HAL_OK)
1665 __HAL_RTC_CLOCKREF_DETECTION_ENABLE(hrtc);
1671 if (status == HAL_OK)
1677 __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
1693 HAL_StatusTypeDef status;
1701 __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
1706 if (status == HAL_OK)
1709 __HAL_RTC_CLOCKREF_DETECTION_DISABLE(hrtc);
1715 if (status == HAL_OK)
1721 __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
1745 __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
1748 hrtc->Instance->CR |= (uint8_t)RTC_CR_BYPSHAD;
1751 __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
1778 __HAL_RTC_WRITEPROTECTION_DISABLE(hrtc);
1781 hrtc->Instance->CR &= (uint8_t)~RTC_CR_BYPSHAD;
1784 __HAL_RTC_WRITEPROTECTION_ENABLE(hrtc);
1839 uint32_t tickstart = 0U;
1845 while (__HAL_RTC_ALARM_GET_FLAG(hrtc, RTC_FLAG_ALRBF) == 0U)
1847 if (Timeout != HAL_MAX_DELAY)
1849 if ((Timeout == 0U) || ((
HAL_GetTick() - tickstart) > Timeout))
1858 __HAL_RTC_ALARM_CLEAR_FLAG(hrtc, RTC_FLAG_ALRBF);
uint32_t HAL_GetTick(void)
Provides a tick value in millisecond.
void HAL_RTCEx_TimeStampEventCallback(RTC_HandleTypeDef *hrtc)
Timestamp callback.
HAL_StatusTypeDef HAL_RTCEx_DeactivateTimeStamp(RTC_HandleTypeDef *hrtc)
Deactivates Timestamp.
void HAL_RTCEx_Tamper1EventCallback(RTC_HandleTypeDef *hrtc)
Tamper 1 callback.
HAL_StatusTypeDef HAL_RTCEx_SetTamper_IT(RTC_HandleTypeDef *hrtc, RTC_TamperTypeDef *sTamper)
Sets Tamper with interrupt.
HAL_StatusTypeDef HAL_RTCEx_SetTamper(RTC_HandleTypeDef *hrtc, RTC_TamperTypeDef *sTamper)
Sets Tamper.
HAL_StatusTypeDef HAL_RTCEx_GetTimeStamp(RTC_HandleTypeDef *hrtc, RTC_TimeTypeDef *sTimeStamp, RTC_DateTypeDef *sTimeStampDate, uint32_t Format)
Gets the RTC Timestamp value.
void HAL_RTCEx_TamperTimeStampIRQHandler(RTC_HandleTypeDef *hrtc)
Handles Timestamp and Tamper interrupt request.
HAL_StatusTypeDef HAL_RTCEx_PollForTamper2Event(RTC_HandleTypeDef *hrtc, uint32_t Timeout)
Handles Tamper 2 Polling.
HAL_StatusTypeDef HAL_RTCEx_SetTimeStamp(RTC_HandleTypeDef *hrtc, uint32_t RTC_TimeStampEdge, uint32_t RTC_TimeStampPin)
Sets Timestamp.
HAL_StatusTypeDef HAL_RTCEx_SetTimeStamp_IT(RTC_HandleTypeDef *hrtc, uint32_t RTC_TimeStampEdge, uint32_t RTC_TimeStampPin)
Sets Timestamp with Interrupt.
HAL_StatusTypeDef HAL_RTCEx_PollForTamper1Event(RTC_HandleTypeDef *hrtc, uint32_t Timeout)
Handles Tamper 1 Polling.
HAL_StatusTypeDef HAL_RTCEx_DeactivateTamper(RTC_HandleTypeDef *hrtc, uint32_t Tamper)
Deactivates Tamper.
void HAL_RTCEx_Tamper2EventCallback(RTC_HandleTypeDef *hrtc)
Tamper 2 callback.
HAL_StatusTypeDef HAL_RTCEx_PollForTimeStampEvent(RTC_HandleTypeDef *hrtc, uint32_t Timeout)
Handles Timestamp polling request.
HAL_StatusTypeDef HAL_RTCEx_PollForWakeUpTimerEvent(RTC_HandleTypeDef *hrtc, uint32_t Timeout)
Handles Wakeup Timer Polling.
HAL_StatusTypeDef HAL_RTCEx_DeactivateWakeUpTimer(RTC_HandleTypeDef *hrtc)
Deactivates wakeup timer counter.
void HAL_RTCEx_WakeUpTimerIRQHandler(RTC_HandleTypeDef *hrtc)
Handles Wakeup Timer interrupt request.
HAL_StatusTypeDef HAL_RTCEx_SetWakeUpTimer_IT(RTC_HandleTypeDef *hrtc, uint32_t WakeUpCounter, uint32_t WakeUpClock)
Sets wakeup timer with interrupt.
void HAL_RTCEx_WakeUpTimerEventCallback(RTC_HandleTypeDef *hrtc)
Wakeup Timer callback.
HAL_StatusTypeDef HAL_RTCEx_SetWakeUpTimer(RTC_HandleTypeDef *hrtc, uint32_t WakeUpCounter, uint32_t WakeUpClock)
Sets wakeup timer.
uint32_t HAL_RTCEx_GetWakeUpTimer(RTC_HandleTypeDef *hrtc)
Gets wakeup timer counter.
HAL_StatusTypeDef HAL_RTCEx_SetSynchroShift(RTC_HandleTypeDef *hrtc, uint32_t ShiftAdd1S, uint32_t ShiftSubFS)
Configures the Synchronization Shift Control Settings.
HAL_StatusTypeDef HAL_RTCEx_SetCoarseCalib(RTC_HandleTypeDef *hrtc, uint32_t CalibSign, uint32_t Value)
Sets the Coarse calibration parameters.
uint32_t HAL_RTCEx_BKUPRead(RTC_HandleTypeDef *hrtc, uint32_t BackupRegister)
Reads data from the specified RTC Backup data Register.
HAL_StatusTypeDef HAL_RTCEx_SetSmoothCalib(RTC_HandleTypeDef *hrtc, uint32_t SmoothCalibPeriod, uint32_t SmoothCalibPlusPulses, uint32_t SmoothCalibMinusPulsesValue)
Sets the Smooth calibration parameters.
HAL_StatusTypeDef HAL_RTCEx_DeactivateCalibrationOutPut(RTC_HandleTypeDef *hrtc)
Deactivates the Calibration Pinout (RTC_CALIB) Selection (1Hz or 512Hz).
HAL_StatusTypeDef HAL_RTCEx_EnableBypassShadow(RTC_HandleTypeDef *hrtc)
Enables the Bypass Shadow feature.
HAL_StatusTypeDef HAL_RTCEx_DeactivateCoarseCalib(RTC_HandleTypeDef *hrtc)
Deactivates the Coarse calibration parameters.
HAL_StatusTypeDef HAL_RTCEx_DeactivateRefClock(RTC_HandleTypeDef *hrtc)
Disable the RTC reference clock detection.
HAL_StatusTypeDef HAL_RTCEx_DisableBypassShadow(RTC_HandleTypeDef *hrtc)
Disables the Bypass Shadow feature.
HAL_StatusTypeDef HAL_RTCEx_SetRefClock(RTC_HandleTypeDef *hrtc)
Enables the RTC reference clock detection.
void HAL_RTCEx_BKUPWrite(RTC_HandleTypeDef *hrtc, uint32_t BackupRegister, uint32_t Data)
Writes a data in a specified RTC Backup data register.
HAL_StatusTypeDef HAL_RTCEx_SetCalibrationOutPut(RTC_HandleTypeDef *hrtc, uint32_t CalibOutput)
Configures the Calibration Pinout (RTC_CALIB) Selection (1Hz or 512Hz).
void HAL_RTCEx_AlarmBEventCallback(RTC_HandleTypeDef *hrtc)
Alarm B callback.
HAL_StatusTypeDef HAL_RTCEx_PollForAlarmBEvent(RTC_HandleTypeDef *hrtc, uint32_t Timeout)
Handles Alarm B Polling request.
uint32_t SamplingFrequency
uint32_t PrechargeDuration
uint32_t TimeStampOnTamperDetection
RTC Tamper structure definition.
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.
struct __RTC_HandleTypeDef else typedef struct endif RTC_HandleTypeDef
RTC Handle Structure definition.
RTC Date structure definition.
RTC Time structure definition.
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.