STM32L4xx_HAL_Driver  1.14.0
Initialization and de-initialization functions

Initialization and Configuration functions. More...

Functions

HAL_StatusTypeDef HAL_RTC_Init (RTC_HandleTypeDef *hrtc)
 Initialize the RTC peripheral. More...
 
HAL_StatusTypeDef HAL_RTC_DeInit (RTC_HandleTypeDef *hrtc)
 DeInitialize the RTC peripheral. More...
 
void HAL_RTC_MspInit (RTC_HandleTypeDef *hrtc)
 Initialize the RTC MSP. More...
 
void HAL_RTC_MspDeInit (RTC_HandleTypeDef *hrtc)
 DeInitialize the RTC MSP. More...
 
HAL_StatusTypeDef HAL_RTC_RegisterCallback (RTC_HandleTypeDef *hrtc, HAL_RTC_CallbackIDTypeDef CallbackID, pRTC_CallbackTypeDef pCallback)
 Register a User RTC Callback To be used instead of the weak predefined callback. More...
 
HAL_StatusTypeDef HAL_RTC_UnRegisterCallback (RTC_HandleTypeDef *hrtc, HAL_RTC_CallbackIDTypeDef CallbackID)
 Unregister an RTC Callback RTC callback is redirected to the weak predefined callback. More...
 

Detailed Description

Initialization and Configuration functions.

 ===============================================================================
              ##### Initialization and de-initialization functions #####
 ===============================================================================
   [..] This section provides functions allowing to initialize and configure the
         RTC Prescaler (Synchronous and Asynchronous), RTC Hour format, disable
         RTC registers Write protection, enter and exit the RTC initialization mode,
         RTC registers synchronization check and reference clock detection enable.
         (#) The RTC Prescaler is programmed to generate the RTC 1Hz time base.
             It is split into 2 programmable prescalers to minimize power consumption.
             (++) A 7-bit asynchronous prescaler and a 15-bit synchronous prescaler.
             (++) When both prescalers are used, it is recommended to configure the
                 asynchronous prescaler to a high value to minimize power consumption.
         (#) All RTC registers are Write protected. Writing to the RTC registers
             is enabled by writing a key into the Write Protection register, RTC_WPR.
         (#) To configure the RTC Calendar, user application should enter
             initialization mode. In this mode, the calendar counter is stopped
             and its value can be updated. When the initialization sequence is
             complete, the calendar restarts counting after 4 RTCCLK cycles.
         (#) To read the calendar through the shadow registers after Calendar
             initialization, calendar update or after wakeup from low power modes
             the software must first clear the RSF flag. The software must then
             wait until it is set again before reading the calendar, which means
             that the calendar registers have been correctly copied into the
             RTC_TR and RTC_DR shadow registers.The HAL_RTC_WaitForSynchro() function
             implements the above software sequence (RSF clear and RSF check).

Function Documentation

◆ HAL_RTC_DeInit()

HAL_StatusTypeDef HAL_RTC_DeInit ( RTC_HandleTypeDef hrtc)

DeInitialize the RTC peripheral.

Note
This function does not reset the RTC Backup Data registers.
Parameters
hrtcRTC handle
Return values
HALstatus

Definition at line 354 of file stm32l4xx_hal_rtc.c.

355 {
356  HAL_StatusTypeDef status = HAL_ERROR;
357 
358  /* Check the RTC peripheral state */
359  if (hrtc != NULL)
360  {
361  /* Check the parameters */
362  assert_param(IS_RTC_ALL_INSTANCE(hrtc->Instance));
363 
364  /* Set RTC state */
365  hrtc->State = HAL_RTC_STATE_BUSY;
366 
367  /* Disable the write protection for RTC registers */
369 
370  /* Enter Initialization mode */
371  status = RTC_EnterInitMode(hrtc);
372 
373  if (status == HAL_OK)
374  {
375  /* Reset all RTC CR register bits */
376  hrtc->Instance->TR = 0x00000000U;
377  hrtc->Instance->DR = ((uint32_t)(RTC_DR_WDU_0 | RTC_DR_MU_0 | RTC_DR_DU_0));
378  hrtc->Instance->CR &= 0x00000000U;
379 
380  hrtc->Instance->WUTR = RTC_WUTR_WUT;
381  hrtc->Instance->PRER = ((uint32_t)(RTC_PRER_PREDIV_A | 0x000000FFU));
382  hrtc->Instance->ALRMAR = 0x00000000U;
383  hrtc->Instance->ALRMBR = 0x00000000U;
384  hrtc->Instance->SHIFTR = 0x00000000U;
385  hrtc->Instance->CALR = 0x00000000U;
386  hrtc->Instance->ALRMASSR = 0x00000000U;
387  hrtc->Instance->ALRMBSSR = 0x00000000U;
388 
389  /* Exit initialization mode */
390  status = RTC_ExitInitMode(hrtc);
391 
392 
393  if (status == HAL_OK)
394  {
395 #if defined(STM32L412xx) || defined(STM32L422xx)
396  /* Reset TAMP registers */
397  ((TAMP_TypeDef *)((uint32_t)hrtc->Instance + hrtc->TampOffset))->CR1 = 0xFFFF0000U;
398  ((TAMP_TypeDef *)((uint32_t)hrtc->Instance + hrtc->TampOffset))->CR2 = 0x00000000U;
399 #else
400  /* Reset Tamper configuration register */
401  hrtc->Instance->TAMPCR = 0x00000000U;
402 
403  /* Reset Option register */
404  hrtc->Instance->OR = 0x00000000U;
405 #endif
406 
407  /* Enable the write protection for RTC registers */
409 
410 #if (USE_HAL_RTC_REGISTER_CALLBACKS == 1)
411  if (hrtc->MspDeInitCallback == NULL)
412  {
414  }
415 
416  /* DeInit the low level hardware: CLOCK, NVIC.*/
417  hrtc->MspDeInitCallback(hrtc);
418 #else
419  /* De-Initialize RTC MSP */
420  HAL_RTC_MspDeInit(hrtc);
421 #endif /* (USE_HAL_RTC_REGISTER_CALLBACKS) */
422 
423  hrtc->State = HAL_RTC_STATE_RESET;
424 
425  /* Release Lock */
426  __HAL_UNLOCK(hrtc);
427  }
428  }
429  }
430 
431  return status;
432 }
__IO HAL_RTCStateTypeDef State
__HAL_RTC_WRITEPROTECTION_DISABLE(hrtc)
__HAL_UNLOCK(hrtc)
return HAL_OK
void(* MspDeInitCallback)(struct __RTC_HandleTypeDef *hrtc)
void HAL_RTC_MspDeInit(RTC_HandleTypeDef *hrtc)
DeInitialize the RTC MSP.
__HAL_RTC_WRITEPROTECTION_ENABLE(hrtc)
HAL_StatusTypeDef RTC_ExitInitMode(RTC_HandleTypeDef *hrtc)
Exit the RTC Initialization mode.
assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock))
HAL_StatusTypeDef RTC_EnterInitMode(RTC_HandleTypeDef *hrtc)
Enter the RTC Initialization mode.

◆ HAL_RTC_Init()

HAL_StatusTypeDef HAL_RTC_Init ( RTC_HandleTypeDef hrtc)

Initialize the RTC peripheral.

Parameters
hrtcRTC handle
Return values
HALstatus

Definition at line 232 of file stm32l4xx_hal_rtc.c.

233 {
234  HAL_StatusTypeDef status = HAL_ERROR;
235 
236  /* Check the RTC peripheral state */
237  if (hrtc != NULL)
238  {
239  /* Check the parameters */
240  assert_param(IS_RTC_ALL_INSTANCE(hrtc->Instance));
241  assert_param(IS_RTC_HOUR_FORMAT(hrtc->Init.HourFormat));
242  assert_param(IS_RTC_ASYNCH_PREDIV(hrtc->Init.AsynchPrediv));
243  assert_param(IS_RTC_SYNCH_PREDIV(hrtc->Init.SynchPrediv));
244  assert_param(IS_RTC_OUTPUT(hrtc->Init.OutPut));
245  assert_param(IS_RTC_OUTPUT_REMAP(hrtc->Init.OutPutRemap));
246  assert_param(IS_RTC_OUTPUT_POL(hrtc->Init.OutPutPolarity));
247  assert_param(IS_RTC_OUTPUT_TYPE(hrtc->Init.OutPutType));
248 #if defined(STM32L412xx) || defined(STM32L422xx)
249  assert_param(IS_RTC_OUTPUT_PULLUP(hrtc->Init.OutPutPullUp));
250 #endif
251 
252 #if (USE_HAL_RTC_REGISTER_CALLBACKS == 1)
253  if (hrtc->State == HAL_RTC_STATE_RESET)
254  {
255  /* Allocate lock resource and initialize it */
256  hrtc->Lock = HAL_UNLOCKED;
257  hrtc->AlarmAEventCallback = HAL_RTC_AlarmAEventCallback; /* Legacy weak AlarmAEventCallback */
258  hrtc->AlarmBEventCallback = HAL_RTCEx_AlarmBEventCallback; /* Legacy weak AlarmBEventCallback */
259  hrtc->TimeStampEventCallback = HAL_RTCEx_TimeStampEventCallback; /* Legacy weak TimeStampEventCallback */
260  hrtc->WakeUpTimerEventCallback = HAL_RTCEx_WakeUpTimerEventCallback; /* Legacy weak WakeUpTimerEventCallback */
261 #if defined(RTC_TAMPER1_SUPPORT)
262  hrtc->Tamper1EventCallback = HAL_RTCEx_Tamper1EventCallback; /* Legacy weak Tamper1EventCallback */
263 #endif /* RTC_TAMPER1_SUPPORT */
264  hrtc->Tamper2EventCallback = HAL_RTCEx_Tamper2EventCallback; /* Legacy weak Tamper2EventCallback */
265 #if defined(RTC_TAMPER3_SUPPORT)
266  hrtc->Tamper3EventCallback = HAL_RTCEx_Tamper3EventCallback; /* Legacy weak Tamper3EventCallback */
267 #endif /* RTC_TAMPER3_SUPPORT */
268 
269  if (hrtc->MspInitCallback == NULL)
270  {
272  }
273  /* Init the low level hardware */
274  hrtc->MspInitCallback(hrtc);
275 
276  if (hrtc->MspDeInitCallback == NULL)
277  {
279  }
280  }
281 #else /* #if (USE_HAL_RTC_REGISTER_CALLBACKS == 1) */
282  if (hrtc->State == HAL_RTC_STATE_RESET)
283  {
284  /* Allocate lock resource and initialize it */
285  hrtc->Lock = HAL_UNLOCKED;
286 
287  /* Initialize RTC MSP */
288  HAL_RTC_MspInit(hrtc);
289  }
290 #endif /* #if (USE_HAL_RTC_REGISTER_CALLBACKS == 1) */
291 
292 #if defined(STM32L412xx) || defined(STM32L422xx)
293  /* Process TAMP ip offset from RTC one */
294  hrtc->TampOffset = (TAMP_BASE - RTC_BASE);
295 #endif
296  /* Set RTC state */
297  hrtc->State = HAL_RTC_STATE_BUSY;
298 
299  /* Disable the write protection for RTC registers */
301 
302  /* Enter Initialization mode */
303  status = RTC_EnterInitMode(hrtc);
304 
305  if (status == HAL_OK)
306  {
307 #if defined(STM32L412xx) || defined(STM32L422xx)
308  /* Clear RTC_CR FMT, OSEL, POL and TAMPOE Bits */
309  hrtc->Instance->CR &= ~(RTC_CR_FMT | RTC_CR_POL | RTC_CR_OSEL | RTC_CR_TAMPOE);
310 #else
311  /* Clear RTC_CR FMT, OSEL and POL Bits */
312  hrtc->Instance->CR &= ~(RTC_CR_FMT | RTC_CR_OSEL | RTC_CR_POL);
313 #endif
314  /* Set RTC_CR register */
315  hrtc->Instance->CR |= (hrtc->Init.HourFormat | hrtc->Init.OutPut | hrtc->Init.OutPutPolarity);
316 
317  /* Configure the RTC PRER */
318  hrtc->Instance->PRER = (hrtc->Init.SynchPrediv);
319  hrtc->Instance->PRER |= (hrtc->Init.AsynchPrediv << RTC_PRER_PREDIV_A_Pos);
320 
321  /* Exit Initialization mode */
322  status = RTC_ExitInitMode(hrtc);
323 
324  if (status == HAL_OK)
325  {
326 #if defined(STM32L412xx) || defined(STM32L422xx)
327  hrtc->Instance->CR &= ~(RTC_CR_TAMPALRM_PU | RTC_CR_TAMPALRM_TYPE | RTC_CR_OUT2EN);
328  hrtc->Instance->CR |= (hrtc->Init.OutPutPullUp | hrtc->Init.OutPutType | hrtc->Init.OutPutRemap);
329 #else
330  hrtc->Instance->OR &= ~(RTC_OR_ALARMOUTTYPE | RTC_OR_OUT_RMP);
331  hrtc->Instance->OR |= (hrtc->Init.OutPutType | hrtc->Init.OutPutRemap);
332 #endif
333 
334  /* Enable the write protection for RTC registers */
336 
337  if (status == HAL_OK)
338  {
339  hrtc->State = HAL_RTC_STATE_READY;
340  }
341  }
342  }
343  }
344 
345  return status;
346 }
void(* Tamper3EventCallback)(struct __RTC_HandleTypeDef *hrtc)
void(* AlarmAEventCallback)(struct __RTC_HandleTypeDef *hrtc)
__IO HAL_RTCStateTypeDef State
void(* Tamper2EventCallback)(struct __RTC_HandleTypeDef *hrtc)
void HAL_RTCEx_AlarmBEventCallback(RTC_HandleTypeDef *hrtc)
__HAL_RTC_WRITEPROTECTION_DISABLE(hrtc)
void HAL_RTCEx_Tamper1EventCallback(RTC_HandleTypeDef *hrtc)
return HAL_OK
void(* MspInitCallback)(struct __RTC_HandleTypeDef *hrtc)
void HAL_RTC_AlarmAEventCallback(RTC_HandleTypeDef *hrtc)
Alarm A callback.
void HAL_RTCEx_Tamper2EventCallback(RTC_HandleTypeDef *hrtc)
void(* TimeStampEventCallback)(struct __RTC_HandleTypeDef *hrtc)
HAL_LockTypeDef Lock
void HAL_RTCEx_TimeStampEventCallback(RTC_HandleTypeDef *hrtc)
TimeStamp callback.
void(* Tamper1EventCallback)(struct __RTC_HandleTypeDef *hrtc)
void(* MspDeInitCallback)(struct __RTC_HandleTypeDef *hrtc)
void HAL_RTCEx_Tamper3EventCallback(RTC_HandleTypeDef *hrtc)
RTC_InitTypeDef Init
void(* AlarmBEventCallback)(struct __RTC_HandleTypeDef *hrtc)
void HAL_RTC_MspDeInit(RTC_HandleTypeDef *hrtc)
DeInitialize the RTC MSP.
void HAL_RTC_MspInit(RTC_HandleTypeDef *hrtc)
Initialize the RTC MSP.
__HAL_RTC_WRITEPROTECTION_ENABLE(hrtc)
HAL_StatusTypeDef RTC_ExitInitMode(RTC_HandleTypeDef *hrtc)
Exit the RTC Initialization mode.
void(* WakeUpTimerEventCallback)(struct __RTC_HandleTypeDef *hrtc)
assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock))
void HAL_RTCEx_WakeUpTimerEventCallback(RTC_HandleTypeDef *hrtc)
HAL_StatusTypeDef RTC_EnterInitMode(RTC_HandleTypeDef *hrtc)
Enter the RTC Initialization mode.

◆ HAL_RTC_MspDeInit()

__weak void HAL_RTC_MspDeInit ( RTC_HandleTypeDef hrtc)

DeInitialize the RTC MSP.

Parameters
hrtcRTC handle
Return values
None

Definition at line 670 of file stm32l4xx_hal_rtc.c.

671 {
672  /* Prevent unused argument(s) compilation warning */
673  UNUSED(hrtc);
674 
675  /* NOTE : This function should not be modified, when the callback is needed,
676  the HAL_RTC_MspDeInit could be implemented in the user file
677  */
678 }

◆ HAL_RTC_MspInit()

__weak void HAL_RTC_MspInit ( RTC_HandleTypeDef hrtc)

Initialize the RTC MSP.

Parameters
hrtcRTC handle
Return values
None

Definition at line 655 of file stm32l4xx_hal_rtc.c.

656 {
657  /* Prevent unused argument(s) compilation warning */
658  UNUSED(hrtc);
659 
660  /* NOTE : This function should not be modified, when the callback is needed,
661  the HAL_RTC_MspInit could be implemented in the user file
662  */
663 }

◆ HAL_RTC_RegisterCallback()

HAL_StatusTypeDef HAL_RTC_RegisterCallback ( RTC_HandleTypeDef hrtc,
HAL_RTC_CallbackIDTypeDef  CallbackID,
pRTC_CallbackTypeDef  pCallback 
)

Register a User RTC Callback To be used instead of the weak predefined callback.

Parameters
hrtcRTC handle
CallbackIDID of the callback to be registered This parameter can be one of the following values:
pCallbackpointer to the Callback function
Return values
HALstatus

Definition at line 453 of file stm32l4xx_hal_rtc.c.

454 {
455  HAL_StatusTypeDef status = HAL_OK;
456 
457  if (pCallback == NULL)
458  {
459  return HAL_ERROR;
460  }
461 
462  /* Process locked */
463  __HAL_LOCK(hrtc);
464 
465  if (HAL_RTC_STATE_READY == hrtc->State)
466  {
467  switch (CallbackID)
468  {
470  hrtc->AlarmAEventCallback = pCallback;
471  break;
472 
474  hrtc->AlarmBEventCallback = pCallback;
475  break;
476 
478  hrtc->TimeStampEventCallback = pCallback;
479  break;
480 
482  hrtc->WakeUpTimerEventCallback = pCallback;
483  break;
484 
485 #if defined(RTC_TAMPER1_SUPPORT)
487  hrtc->Tamper1EventCallback = pCallback;
488  break;
489 #endif /* RTC_TAMPER1_SUPPORT */
490 
492  hrtc->Tamper2EventCallback = pCallback;
493  break;
494 
495 #if defined(RTC_TAMPER3_SUPPORT)
497  hrtc->Tamper3EventCallback = pCallback;
498  break;
499 #endif /* RTC_TAMPER3_SUPPORT */
500 
501  case HAL_RTC_MSPINIT_CB_ID :
502  hrtc->MspInitCallback = pCallback;
503  break;
504 
506  hrtc->MspDeInitCallback = pCallback;
507  break;
508 
509  default :
510  /* Return error status */
511  status = HAL_ERROR;
512  break;
513  }
514  }
515  else if (HAL_RTC_STATE_RESET == hrtc->State)
516  {
517  switch (CallbackID)
518  {
519  case HAL_RTC_MSPINIT_CB_ID :
520  hrtc->MspInitCallback = pCallback;
521  break;
522 
524  hrtc->MspDeInitCallback = pCallback;
525  break;
526 
527  default :
528  /* Return error status */
529  status = HAL_ERROR;
530  break;
531  }
532  }
533  else
534  {
535  /* Return error status */
536  status = HAL_ERROR;
537  }
538 
539  /* Release Lock */
540  __HAL_UNLOCK(hrtc);
541 
542  return status;
543 }
void(* Tamper3EventCallback)(struct __RTC_HandleTypeDef *hrtc)
void(* AlarmAEventCallback)(struct __RTC_HandleTypeDef *hrtc)
__IO HAL_RTCStateTypeDef State
void(* Tamper2EventCallback)(struct __RTC_HandleTypeDef *hrtc)
__HAL_UNLOCK(hrtc)
__HAL_LOCK(hrtc)
return HAL_OK
void(* MspInitCallback)(struct __RTC_HandleTypeDef *hrtc)
void(* TimeStampEventCallback)(struct __RTC_HandleTypeDef *hrtc)
void(* Tamper1EventCallback)(struct __RTC_HandleTypeDef *hrtc)
void(* MspDeInitCallback)(struct __RTC_HandleTypeDef *hrtc)
void(* AlarmBEventCallback)(struct __RTC_HandleTypeDef *hrtc)
void(* WakeUpTimerEventCallback)(struct __RTC_HandleTypeDef *hrtc)

◆ HAL_RTC_UnRegisterCallback()

HAL_StatusTypeDef HAL_RTC_UnRegisterCallback ( RTC_HandleTypeDef hrtc,
HAL_RTC_CallbackIDTypeDef  CallbackID 
)

Unregister an RTC Callback RTC callback is redirected to the weak predefined callback.

Parameters
hrtcRTC handle
CallbackIDID of the callback to be unregistered This parameter can be one of the following values:
Return values
HALstatus

Definition at line 562 of file stm32l4xx_hal_rtc.c.

563 {
564  HAL_StatusTypeDef status = HAL_OK;
565 
566  /* Process locked */
567  __HAL_LOCK(hrtc);
568 
569  if (HAL_RTC_STATE_READY == hrtc->State)
570  {
571  switch (CallbackID)
572  {
574  hrtc->AlarmAEventCallback = HAL_RTC_AlarmAEventCallback; /* Legacy weak AlarmAEventCallback */
575  break;
576 
578  hrtc->AlarmBEventCallback = HAL_RTCEx_AlarmBEventCallback; /* Legacy weak AlarmBEventCallback */
579  break;
580 
582  hrtc->TimeStampEventCallback = HAL_RTCEx_TimeStampEventCallback; /* Legacy weak TimeStampEventCallback */
583  break;
584 
586  hrtc->WakeUpTimerEventCallback = HAL_RTCEx_WakeUpTimerEventCallback; /* Legacy weak WakeUpTimerEventCallback */
587  break;
588 
589 #if defined(RTC_TAMPER1_SUPPORT)
591  hrtc->Tamper1EventCallback = HAL_RTCEx_Tamper1EventCallback; /* Legacy weak Tamper1EventCallback */
592  break;
593 #endif /* RTC_TAMPER1_SUPPORT */
594 
596  hrtc->Tamper2EventCallback = HAL_RTCEx_Tamper2EventCallback; /* Legacy weak Tamper2EventCallback */
597  break;
598 
599 #if defined(RTC_TAMPER3_SUPPORT)
601  hrtc->Tamper3EventCallback = HAL_RTCEx_Tamper3EventCallback; /* Legacy weak Tamper3EventCallback */
602  break;
603 #endif /* RTC_TAMPER3_SUPPORT */
604 
605  case HAL_RTC_MSPINIT_CB_ID :
607  break;
608 
611  break;
612 
613  default :
614  /* Return error status */
615  status = HAL_ERROR;
616  break;
617  }
618  }
619  else if (HAL_RTC_STATE_RESET == hrtc->State)
620  {
621  switch (CallbackID)
622  {
623  case HAL_RTC_MSPINIT_CB_ID :
625  break;
626 
629  break;
630 
631  default :
632  /* Return error status */
633  status = HAL_ERROR;
634  break;
635  }
636  }
637  else
638  {
639  /* Return error status */
640  status = HAL_ERROR;
641  }
642 
643  /* Release Lock */
644  __HAL_UNLOCK(hrtc);
645 
646  return status;
647 }
void(* Tamper3EventCallback)(struct __RTC_HandleTypeDef *hrtc)
void(* AlarmAEventCallback)(struct __RTC_HandleTypeDef *hrtc)
__IO HAL_RTCStateTypeDef State
void(* Tamper2EventCallback)(struct __RTC_HandleTypeDef *hrtc)
void HAL_RTCEx_AlarmBEventCallback(RTC_HandleTypeDef *hrtc)
__HAL_UNLOCK(hrtc)
void HAL_RTCEx_Tamper1EventCallback(RTC_HandleTypeDef *hrtc)
__HAL_LOCK(hrtc)
return HAL_OK
void(* MspInitCallback)(struct __RTC_HandleTypeDef *hrtc)
void HAL_RTC_AlarmAEventCallback(RTC_HandleTypeDef *hrtc)
Alarm A callback.
void HAL_RTCEx_Tamper2EventCallback(RTC_HandleTypeDef *hrtc)
void(* TimeStampEventCallback)(struct __RTC_HandleTypeDef *hrtc)
void HAL_RTCEx_TimeStampEventCallback(RTC_HandleTypeDef *hrtc)
TimeStamp callback.
void(* Tamper1EventCallback)(struct __RTC_HandleTypeDef *hrtc)
void(* MspDeInitCallback)(struct __RTC_HandleTypeDef *hrtc)
void HAL_RTCEx_Tamper3EventCallback(RTC_HandleTypeDef *hrtc)
void(* AlarmBEventCallback)(struct __RTC_HandleTypeDef *hrtc)
void HAL_RTC_MspDeInit(RTC_HandleTypeDef *hrtc)
DeInitialize the RTC MSP.
void HAL_RTC_MspInit(RTC_HandleTypeDef *hrtc)
Initialize the RTC MSP.
void(* WakeUpTimerEventCallback)(struct __RTC_HandleTypeDef *hrtc)
void HAL_RTCEx_WakeUpTimerEventCallback(RTC_HandleTypeDef *hrtc)