STM32L4xx_HAL_Driver  1.14.0
stm32l4xx_ll_rtc.h
Go to the documentation of this file.
1 
20 /* Define to prevent recursive inclusion -------------------------------------*/
21 #ifndef STM32L4xx_LL_RTC_H
22 #define STM32L4xx_LL_RTC_H
23 
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27 
28 /* Includes ------------------------------------------------------------------*/
29 #include "stm32l4xx.h"
30 
35 #if defined(RTC)
36 
41 /* Private types -------------------------------------------------------------*/
42 /* Private variables ---------------------------------------------------------*/
43 /* Private constants ---------------------------------------------------------*/
47 /* Masks Definition */
48 #define RTC_LL_INIT_MASK 0xFFFFFFFFU
49 #define RTC_LL_RSF_MASK 0xFFFFFF5FU
50 
51 /* Write protection defines */
52 #define RTC_WRITE_PROTECTION_DISABLE 0xFFU
53 #define RTC_WRITE_PROTECTION_ENABLE_1 0xCAU
54 #define RTC_WRITE_PROTECTION_ENABLE_2 0x53U
55 
56 /* Defines used to combine date & time */
57 #define RTC_OFFSET_WEEKDAY 24U
58 #define RTC_OFFSET_DAY 16U
59 #define RTC_OFFSET_MONTH 8U
60 #define RTC_OFFSET_HOUR 16U
61 #define RTC_OFFSET_MINUTE 8U
62 
67 /* Private macros ------------------------------------------------------------*/
68 #if defined(USE_FULL_LL_DRIVER)
69 
75 #endif /*USE_FULL_LL_DRIVER*/
76 
77 /* Exported types ------------------------------------------------------------*/
78 #if defined(USE_FULL_LL_DRIVER)
79 
86 typedef struct
87 {
88  uint32_t HourFormat;
94  uint32_t AsynchPrescaler;
100  uint32_t SynchPrescaler;
106 
110 typedef struct
111 {
112  uint32_t TimeFormat;
117  uint8_t Hours;
123  uint8_t Minutes;
128  uint8_t Seconds;
133 
137 typedef struct
138 {
139  uint8_t WeekDay;
144  uint8_t Month;
149  uint8_t Day;
154  uint8_t Year;
159 
163 typedef struct
164 {
167  uint32_t AlarmMask;
193 
197 #endif /* USE_FULL_LL_DRIVER */
198 
199 /* Exported constants --------------------------------------------------------*/
204 #if defined(USE_FULL_LL_DRIVER)
205 
208 #define LL_RTC_FORMAT_BIN 0x000000000U
209 #define LL_RTC_FORMAT_BCD 0x000000001U
217 #define LL_RTC_ALMA_DATEWEEKDAYSEL_DATE 0x00000000U
218 #define LL_RTC_ALMA_DATEWEEKDAYSEL_WEEKDAY RTC_ALRMAR_WDSEL
226 #define LL_RTC_ALMB_DATEWEEKDAYSEL_DATE 0x00000000U
227 #define LL_RTC_ALMB_DATEWEEKDAYSEL_WEEKDAY RTC_ALRMBR_WDSEL
232 #endif /* USE_FULL_LL_DRIVER */
233 
238 #if defined(STM32L412xx) || defined(STM32L422xx)
239 #define LL_RTC_SCR_ITSF RTC_SCR_CITSF
240 #define LL_RTC_SCR_TSOVF RTC_SCR_CTSOVF
241 #define LL_RTC_SCR_TSF RTC_SCR_CTSF
242 #define LL_RTC_SCR_WUTF RTC_SCR_CWUTF
243 #define LL_RTC_SCR_ALRBF RTC_SCR_CALRBF
244 #define LL_RTC_CSR_ALRAF RTC_SCR_CALRAF
245 
246 #define LL_RTC_ICSR_RECALPF RTC_ICSR_RECALPF
247 #define LL_RTC_ICSR_INITF RTC_ICSR_INITF
248 #define LL_RTC_ICSR_RSF RTC_ICSR_RSF
249 #define LL_RTC_ICSR_INITS RTC_ICSR_INITS
250 #define LL_RTC_ICSR_SHPF RTC_ICSR_SHPF
251 #define LL_RTC_ICSR_WUTWF RTC_ICSR_WUTWF
252 #else /* #if defined(STM32L412xx) || defined(STM32L422xx) */
253 #define LL_RTC_ISR_ITSF RTC_ISR_ITSF
254 #define LL_RTC_ISR_RECALPF RTC_ISR_RECALPF
255 #define LL_RTC_ISR_TAMP3F RTC_ISR_TAMP3F
256 #define LL_RTC_ISR_TAMP2F RTC_ISR_TAMP2F
257 #define LL_RTC_ISR_TAMP1F RTC_ISR_TAMP1F
258 #define LL_RTC_ISR_TSOVF RTC_ISR_TSOVF
259 #define LL_RTC_ISR_TSF RTC_ISR_TSF
260 #define LL_RTC_ISR_WUTF RTC_ISR_WUTF
261 #define LL_RTC_ISR_ALRBF RTC_ISR_ALRBF
262 #define LL_RTC_ISR_ALRAF RTC_ISR_ALRAF
263 #define LL_RTC_ISR_INITF RTC_ISR_INITF
264 #define LL_RTC_ISR_RSF RTC_ISR_RSF
265 #define LL_RTC_ISR_INITS RTC_ISR_INITS
266 #define LL_RTC_ISR_SHPF RTC_ISR_SHPF
267 #define LL_RTC_ISR_WUTWF RTC_ISR_WUTWF
268 #define LL_RTC_ISR_ALRBWF RTC_ISR_ALRBWF
269 #define LL_RTC_ISR_ALRAWF RTC_ISR_ALRAWF
270 #endif /* #if defined(STM32L412xx) || defined(STM32L422xx) */
271 
279 #define LL_RTC_CR_TSIE RTC_CR_TSIE
280 #define LL_RTC_CR_WUTIE RTC_CR_WUTIE
281 #define LL_RTC_CR_ALRBIE RTC_CR_ALRBIE
282 #define LL_RTC_CR_ALRAIE RTC_CR_ALRAIE
283 #if defined(STM32L412xx) || defined(STM32L422xx)
284 #else /* #if defined(STM32L412xx) || defined(STM32L422xx) */
285 #define LL_RTC_TAMPCR_TAMP3IE RTC_TAMPCR_TAMP3IE
286 #define LL_RTC_TAMPCR_TAMP2IE RTC_TAMPCR_TAMP2IE
287 #define LL_RTC_TAMPCR_TAMP1IE RTC_TAMPCR_TAMP1IE
288 #define LL_RTC_TAMPCR_TAMPIE RTC_TAMPCR_TAMPIE
289 #endif /* #if defined(STM32L412xx) || defined(STM32L422xx) */
290 
297 #define LL_RTC_WEEKDAY_MONDAY (uint8_t)0x01
298 #define LL_RTC_WEEKDAY_TUESDAY (uint8_t)0x02
299 #define LL_RTC_WEEKDAY_WEDNESDAY (uint8_t)0x03
300 #define LL_RTC_WEEKDAY_THURSDAY (uint8_t)0x04
301 #define LL_RTC_WEEKDAY_FRIDAY (uint8_t)0x05
302 #define LL_RTC_WEEKDAY_SATURDAY (uint8_t)0x06
303 #define LL_RTC_WEEKDAY_SUNDAY (uint8_t)0x07
311 #define LL_RTC_MONTH_JANUARY (uint8_t)0x01
312 #define LL_RTC_MONTH_FEBRUARY (uint8_t)0x02
313 #define LL_RTC_MONTH_MARCH (uint8_t)0x03
314 #define LL_RTC_MONTH_APRIL (uint8_t)0x04
315 #define LL_RTC_MONTH_MAY (uint8_t)0x05
316 #define LL_RTC_MONTH_JUNE (uint8_t)0x06
317 #define LL_RTC_MONTH_JULY (uint8_t)0x07
318 #define LL_RTC_MONTH_AUGUST (uint8_t)0x08
319 #define LL_RTC_MONTH_SEPTEMBER (uint8_t)0x09
320 #define LL_RTC_MONTH_OCTOBER (uint8_t)0x10
321 #define LL_RTC_MONTH_NOVEMBER (uint8_t)0x11
322 #define LL_RTC_MONTH_DECEMBER (uint8_t)0x12
330 #define LL_RTC_HOURFORMAT_24HOUR 0x00000000U
331 #define LL_RTC_HOURFORMAT_AMPM RTC_CR_FMT
339 #define LL_RTC_ALARMOUT_DISABLE 0x00000000U
340 #define LL_RTC_ALARMOUT_ALMA RTC_CR_OSEL_0
341 #define LL_RTC_ALARMOUT_ALMB RTC_CR_OSEL_1
342 #define LL_RTC_ALARMOUT_WAKEUP RTC_CR_OSEL
350 #if defined(STM32L412xx) || defined(STM32L422xx)
351 #define LL_RTC_ALARM_OUTPUTTYPE_OPENDRAIN RTC_CR_TAMPALRM_TYPE
352 #define LL_RTC_ALARM_OUTPUTTYPE_PUSHPULL 0x00000000U
353 #else /* #if defined(STM32L412xx) || defined(STM32L422xx) */
354 #define LL_RTC_ALARM_OUTPUTTYPE_OPENDRAIN 0x00000000U
355 #define LL_RTC_ALARM_OUTPUTTYPE_PUSHPULL RTC_OR_ALARMOUTTYPE
356 #endif /* #if defined(STM32L412xx) || defined(STM32L422xx) */
357 
364 #define LL_RTC_OUTPUTPOLARITY_PIN_HIGH 0x00000000U
365 #define LL_RTC_OUTPUTPOLARITY_PIN_LOW RTC_CR_POL
373 #define LL_RTC_TIME_FORMAT_AM_OR_24 0x00000000U
374 #define LL_RTC_TIME_FORMAT_PM RTC_TR_PM
382 #define LL_RTC_SHIFT_SECOND_DELAY 0x00000000U /* Delay (seconds) = SUBFS / (PREDIV_S + 1) */
383 #define LL_RTC_SHIFT_SECOND_ADVANCE RTC_SHIFTR_ADD1S /* Advance (seconds) = (1 - (SUBFS / (PREDIV_S + 1))) */
384 
391 #define LL_RTC_ALMA_MASK_NONE 0x00000000U
392 #define LL_RTC_ALMA_MASK_DATEWEEKDAY RTC_ALRMAR_MSK4
393 #define LL_RTC_ALMA_MASK_HOURS RTC_ALRMAR_MSK3
394 #define LL_RTC_ALMA_MASK_MINUTES RTC_ALRMAR_MSK2
395 #define LL_RTC_ALMA_MASK_SECONDS RTC_ALRMAR_MSK1
396 #define LL_RTC_ALMA_MASK_ALL (RTC_ALRMAR_MSK4 | RTC_ALRMAR_MSK3 | RTC_ALRMAR_MSK2 | RTC_ALRMAR_MSK1)
404 #define LL_RTC_ALMA_TIME_FORMAT_AM 0x00000000U
405 #define LL_RTC_ALMA_TIME_FORMAT_PM RTC_ALRMAR_PM
413 #define LL_RTC_ALMB_MASK_NONE 0x00000000U
414 #define LL_RTC_ALMB_MASK_DATEWEEKDAY RTC_ALRMBR_MSK4
415 #define LL_RTC_ALMB_MASK_HOURS RTC_ALRMBR_MSK3
416 #define LL_RTC_ALMB_MASK_MINUTES RTC_ALRMBR_MSK2
417 #define LL_RTC_ALMB_MASK_SECONDS RTC_ALRMBR_MSK1
418 #define LL_RTC_ALMB_MASK_ALL (RTC_ALRMBR_MSK4 | RTC_ALRMBR_MSK3 | RTC_ALRMBR_MSK2 | RTC_ALRMBR_MSK1)
426 #define LL_RTC_ALMB_TIME_FORMAT_AM 0x00000000U
427 #define LL_RTC_ALMB_TIME_FORMAT_PM RTC_ALRMBR_PM
435 #define LL_RTC_TIMESTAMP_EDGE_RISING 0x00000000U
436 #define LL_RTC_TIMESTAMP_EDGE_FALLING RTC_CR_TSEDGE
444 #define LL_RTC_TS_TIME_FORMAT_AM 0x00000000U
445 #define LL_RTC_TS_TIME_FORMAT_PM RTC_TSTR_PM
450 #if defined(STM32L412xx) || defined(STM32L422xx)
451 
454 #define LL_RTC_TAMPER_1 TAMP_CR1_TAMP1E
455 #define LL_RTC_TAMPER_2 TAMP_CR1_TAMP2E
463 #define LL_RTC_TAMPER_MASK_TAMPER1 TAMP_CR2_TAMP1MSK
464 #define LL_RTC_TAMPER_MASK_TAMPER2 TAMP_CR2_TAMP2MSK
472 #define LL_RTC_TAMPER_NOERASE_TAMPER1 TAMP_CR2_TAMP1NOERASE
473 #define LL_RTC_TAMPER_NOERASE_TAMPER2 TAMP_CR2_TAMP2NOERASE
481 #define LL_RTC_TAMPER_DURATION_1RTCCLK 0x00000000U
482 #define LL_RTC_TAMPER_DURATION_2RTCCLK TAMP_FLTCR_TAMPPRCH_0
483 #define LL_RTC_TAMPER_DURATION_4RTCCLK TAMP_FLTCR_TAMPPRCH_1
484 #define LL_RTC_TAMPER_DURATION_8RTCCLK TAMP_FLTCR_TAMPPRCH
492 #define LL_RTC_TAMPER_FILTER_DISABLE 0x00000000U
493 #define LL_RTC_TAMPER_FILTER_2SAMPLE TAMP_FLTCR_TAMPFLT_0
494 #define LL_RTC_TAMPER_FILTER_4SAMPLE TAMP_FLTCR_TAMPFLT_1
495 #define LL_RTC_TAMPER_FILTER_8SAMPLE TAMP_FLTCR_TAMPFLT
503 #define LL_RTC_TAMPER_SAMPLFREQDIV_32768 0x00000000U
504 #define LL_RTC_TAMPER_SAMPLFREQDIV_16384 TAMP_FLTCR_TAMPFREQ_0
505 #define LL_RTC_TAMPER_SAMPLFREQDIV_8192 TAMP_FLTCR_TAMPFREQ_1
506 #define LL_RTC_TAMPER_SAMPLFREQDIV_4096 (TAMP_FLTCR_TAMPFREQ_1 | TAMP_FLTCR_TAMPFREQ_0)
507 #define LL_RTC_TAMPER_SAMPLFREQDIV_2048 TAMP_FLTCR_TAMPFREQ_2
508 #define LL_RTC_TAMPER_SAMPLFREQDIV_1024 (TAMP_FLTCR_TAMPFREQ_2 | TAMP_FLTCR_TAMPFREQ_0)
509 #define LL_RTC_TAMPER_SAMPLFREQDIV_512 (TAMP_FLTCR_TAMPFREQ_2 | TAMP_FLTCR_TAMPFREQ_1)
510 #define LL_RTC_TAMPER_SAMPLFREQDIV_256 TAMP_FLTCR_TAMPFREQ
518 #define LL_RTC_TAMPER_ACTIVELEVEL_TAMP1 TAMP_CR2_TAMP1TRG
519 #define LL_RTC_TAMPER_ACTIVELEVEL_TAMP2 TAMP_CR2_TAMP2TRG
524 #else /* #if defined(STM32L412xx) || defined(STM32L422xx) */
525 
529 #if defined(RTC_TAMPER1_SUPPORT)
530 #define LL_RTC_TAMPER_1 RTC_TAMPCR_TAMP1E
531 #endif /* RTC_TAMPER1_SUPPORT */
532 #if defined(RTC_TAMPER2_SUPPORT)
533 #define LL_RTC_TAMPER_2 RTC_TAMPCR_TAMP2E
534 #endif /* RTC_TAMPER2_SUPPORT */
535 #if defined(RTC_TAMPER3_SUPPORT)
536 #define LL_RTC_TAMPER_3 RTC_TAMPCR_TAMP3E
537 #endif /* RTC_TAMPER3_SUPPORT */
538 
545 #if defined(RTC_TAMPER1_SUPPORT)
546 #define LL_RTC_TAMPER_MASK_TAMPER1 RTC_TAMPCR_TAMP1MF
547 #endif /* RTC_TAMPER1_SUPPORT */
548 #if defined(RTC_TAMPER2_SUPPORT)
549 #define LL_RTC_TAMPER_MASK_TAMPER2 RTC_TAMPCR_TAMP2MF
550 #endif /* RTC_TAMPER2_SUPPORT */
551 #if defined(RTC_TAMPER3_SUPPORT)
552 #define LL_RTC_TAMPER_MASK_TAMPER3 RTC_TAMPCR_TAMP3MF
553 #endif /* RTC_TAMPER3_SUPPORT */
554 
561 #if defined(RTC_TAMPER1_SUPPORT)
562 #define LL_RTC_TAMPER_NOERASE_TAMPER1 RTC_TAMPCR_TAMP1NOERASE
563 #endif /* RTC_TAMPER1_SUPPORT */
564 #if defined(RTC_TAMPER2_SUPPORT)
565 #define LL_RTC_TAMPER_NOERASE_TAMPER2 RTC_TAMPCR_TAMP2NOERASE
566 #endif /* RTC_TAMPER2_SUPPORT */
567 #if defined(RTC_TAMPER3_SUPPORT)
568 #define LL_RTC_TAMPER_NOERASE_TAMPER3 RTC_TAMPCR_TAMP3NOERASE
569 #endif /* RTC_TAMPER3_SUPPORT */
570 
574 #if defined(RTC_TAMPCR_TAMPPRCH)
575 
578 #define LL_RTC_TAMPER_DURATION_1RTCCLK 0x00000000U
579 #define LL_RTC_TAMPER_DURATION_2RTCCLK RTC_TAMPCR_TAMPPRCH_0
580 #define LL_RTC_TAMPER_DURATION_4RTCCLK RTC_TAMPCR_TAMPPRCH_1
581 #define LL_RTC_TAMPER_DURATION_8RTCCLK RTC_TAMPCR_TAMPPRCH
585 #endif /* RTC_TAMPCR_TAMPPRCH */
586 
587 #if defined(RTC_TAMPCR_TAMPFLT)
588 
591 #define LL_RTC_TAMPER_FILTER_DISABLE 0x00000000U
592 #define LL_RTC_TAMPER_FILTER_2SAMPLE RTC_TAMPCR_TAMPFLT_0
593 #define LL_RTC_TAMPER_FILTER_4SAMPLE RTC_TAMPCR_TAMPFLT_1
594 #define LL_RTC_TAMPER_FILTER_8SAMPLE RTC_TAMPCR_TAMPFLT
598 #endif /* RTC_TAMPCR_TAMPFLT */
599 
600 #if defined(RTC_TAMPCR_TAMPFREQ)
601 
604 #define LL_RTC_TAMPER_SAMPLFREQDIV_32768 0x00000000U
605 #define LL_RTC_TAMPER_SAMPLFREQDIV_16384 RTC_TAMPCR_TAMPFREQ_0
606 #define LL_RTC_TAMPER_SAMPLFREQDIV_8192 RTC_TAMPCR_TAMPFREQ_1
607 #define LL_RTC_TAMPER_SAMPLFREQDIV_4096 (RTC_TAMPCR_TAMPFREQ_1 | RTC_TAMPCR_TAMPFREQ_0)
608 #define LL_RTC_TAMPER_SAMPLFREQDIV_2048 RTC_TAMPCR_TAMPFREQ_2
609 #define LL_RTC_TAMPER_SAMPLFREQDIV_1024 (RTC_TAMPCR_TAMPFREQ_2 | RTC_TAMPCR_TAMPFREQ_0)
610 #define LL_RTC_TAMPER_SAMPLFREQDIV_512 (RTC_TAMPCR_TAMPFREQ_2 | RTC_TAMPCR_TAMPFREQ_1)
611 #define LL_RTC_TAMPER_SAMPLFREQDIV_256 RTC_TAMPCR_TAMPFREQ
615 #endif /* RTC_TAMPCR_TAMPFREQ */
616 
620 #if defined(RTC_TAMPER1_SUPPORT)
621 #define LL_RTC_TAMPER_ACTIVELEVEL_TAMP1 RTC_TAMPCR_TAMP1TRG
622 #endif /* RTC_TAMPER1_SUPPORT */
623 #if defined(RTC_TAMPER2_SUPPORT)
624 #define LL_RTC_TAMPER_ACTIVELEVEL_TAMP2 RTC_TAMPCR_TAMP2TRG
625 #endif /* RTC_TAMPER2_SUPPORT */
626 #if defined(RTC_TAMPER3_SUPPORT)
627 #define LL_RTC_TAMPER_ACTIVELEVEL_TAMP3 RTC_TAMPCR_TAMP3TRG
628 #endif /* RTC_TAMPER3_SUPPORT */
629 
633 #endif /* #if defined(STM32L412xx) || defined(STM32L422xx) */
634 
638 #define LL_RTC_WAKEUPCLOCK_DIV_16 0x00000000U
639 #define LL_RTC_WAKEUPCLOCK_DIV_8 RTC_CR_WUCKSEL_0
640 #define LL_RTC_WAKEUPCLOCK_DIV_4 RTC_CR_WUCKSEL_1
641 #define LL_RTC_WAKEUPCLOCK_DIV_2 (RTC_CR_WUCKSEL_1 | RTC_CR_WUCKSEL_0)
642 #define LL_RTC_WAKEUPCLOCK_CKSPRE RTC_CR_WUCKSEL_2
643 #define LL_RTC_WAKEUPCLOCK_CKSPRE_WUT (RTC_CR_WUCKSEL_2 | RTC_CR_WUCKSEL_1)
648 #if defined(RTC_BACKUP_SUPPORT)
649 
652 #define LL_RTC_BKP_DR0 0x00000000U
653 #define LL_RTC_BKP_DR1 0x00000001U
654 #define LL_RTC_BKP_DR2 0x00000002U
655 #define LL_RTC_BKP_DR3 0x00000003U
656 #define LL_RTC_BKP_DR4 0x00000004U
657 #if RTC_BKP_NUMBER > 5
658 #define LL_RTC_BKP_DR5 0x00000005U
659 #define LL_RTC_BKP_DR6 0x00000006U
660 #define LL_RTC_BKP_DR7 0x00000007U
661 #define LL_RTC_BKP_DR8 0x00000008U
662 #define LL_RTC_BKP_DR9 0x00000009U
663 #define LL_RTC_BKP_DR10 0x0000000AU
664 #define LL_RTC_BKP_DR11 0x0000000BU
665 #define LL_RTC_BKP_DR12 0x0000000CU
666 #define LL_RTC_BKP_DR13 0x0000000DU
667 #define LL_RTC_BKP_DR14 0x0000000EU
668 #define LL_RTC_BKP_DR15 0x0000000FU
669 #endif /* RTC_BKP_NUMBER > 5 */
670 
671 #if RTC_BKP_NUMBER > 16
672 #define LL_RTC_BKP_DR16 0x00000010U
673 #define LL_RTC_BKP_DR17 0x00000011U
674 #define LL_RTC_BKP_DR18 0x00000012U
675 #define LL_RTC_BKP_DR19 0x00000013U
676 #endif /* RTC_BKP_NUMBER > 16 */
677 
678 #if RTC_BKP_NUMBER > 20
679 #define LL_RTC_BKP_DR20 0x00000014U
680 #define LL_RTC_BKP_DR21 0x00000015U
681 #define LL_RTC_BKP_DR22 0x00000016U
682 #define LL_RTC_BKP_DR23 0x00000017U
683 #define LL_RTC_BKP_DR24 0x00000018U
684 #define LL_RTC_BKP_DR25 0x00000019U
685 #define LL_RTC_BKP_DR26 0x0000001AU
686 #define LL_RTC_BKP_DR27 0x0000001BU
687 #define LL_RTC_BKP_DR28 0x0000001CU
688 #define LL_RTC_BKP_DR29 0x0000001DU
689 #define LL_RTC_BKP_DR30 0x0000001EU
690 #define LL_RTC_BKP_DR31 0x0000001FU
691 #endif /* RTC_BKP_NUMBER > 20 */
692 
695 #endif /* RTC_BACKUP_SUPPORT */
696 
700 #define LL_RTC_CALIB_OUTPUT_NONE 0x00000000U
701 #define LL_RTC_CALIB_OUTPUT_1HZ (RTC_CR_COE | RTC_CR_COSEL)
702 #define LL_RTC_CALIB_OUTPUT_512HZ RTC_CR_COE
710 #define LL_RTC_CALIB_INSERTPULSE_NONE 0x00000000U
711 #define LL_RTC_CALIB_INSERTPULSE_SET RTC_CALR_CALP
719 #define LL_RTC_CALIB_PERIOD_32SEC 0x00000000U
720 #define LL_RTC_CALIB_PERIOD_16SEC RTC_CALR_CALW16
721 #define LL_RTC_CALIB_PERIOD_8SEC RTC_CALR_CALW8
730 /* Exported macro ------------------------------------------------------------*/
731 
746 #define LL_RTC_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__))
747 
754 #define LL_RTC_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__)
755 
768 #define __LL_RTC_CONVERT_BIN2BCD(__VALUE__) (uint8_t)((((__VALUE__) / 10U) << 4U) | ((__VALUE__) % 10U))
769 
775 #define __LL_RTC_CONVERT_BCD2BIN(__VALUE__) (uint8_t)(((uint8_t)((__VALUE__) & (uint8_t)0xF0U) >> (uint8_t)0x4U) * 10U + ((__VALUE__) & (uint8_t)0x0FU))
776 
797 #define __LL_RTC_GET_WEEKDAY(__RTC_DATE__) (((__RTC_DATE__) >> RTC_OFFSET_WEEKDAY) & 0x000000FFU)
798 
804 #define __LL_RTC_GET_YEAR(__RTC_DATE__) ((__RTC_DATE__) & 0x000000FFU)
805 
823 #define __LL_RTC_GET_MONTH(__RTC_DATE__) (((__RTC_DATE__) >>RTC_OFFSET_MONTH) & 0x000000FFU)
824 
830 #define __LL_RTC_GET_DAY(__RTC_DATE__) (((__RTC_DATE__) >>RTC_OFFSET_DAY) & 0x000000FFU)
831 
845 #define __LL_RTC_GET_HOUR(__RTC_TIME__) (((__RTC_TIME__) >> RTC_OFFSET_HOUR) & 0x000000FFU)
846 
852 #define __LL_RTC_GET_MINUTE(__RTC_TIME__) (((__RTC_TIME__) >> RTC_OFFSET_MINUTE) & 0x000000FFU)
853 
859 #define __LL_RTC_GET_SECOND(__RTC_TIME__) ((__RTC_TIME__) & 0x000000FFU)
860 
869 /* Exported functions --------------------------------------------------------*/
889 __STATIC_INLINE void LL_RTC_SetHourFormat(RTC_TypeDef *RTCx, uint32_t HourFormat)
890 {
891  MODIFY_REG(RTCx->CR, RTC_CR_FMT, HourFormat);
892 }
893 
902 __STATIC_INLINE uint32_t LL_RTC_GetHourFormat(RTC_TypeDef *RTCx)
903 {
904  return (uint32_t)(READ_BIT(RTCx->CR, RTC_CR_FMT));
905 }
906 
919 __STATIC_INLINE void LL_RTC_SetAlarmOutEvent(RTC_TypeDef *RTCx, uint32_t AlarmOutput)
920 {
921  MODIFY_REG(RTCx->CR, RTC_CR_OSEL, AlarmOutput);
922 }
923 
934 __STATIC_INLINE uint32_t LL_RTC_GetAlarmOutEvent(RTC_TypeDef *RTCx)
935 {
936  return (uint32_t)(READ_BIT(RTCx->CR, RTC_CR_OSEL));
937 }
938 
939 #if defined(STM32L412xx) || defined(STM32L422xx)
940 
949 __STATIC_INLINE void LL_RTC_SetAlarmOutputType(RTC_TypeDef *RTCx, uint32_t Output)
950 {
951  MODIFY_REG(RTCx->CR, RTC_CR_TAMPALRM_TYPE, Output);
952 }
953 
962 __STATIC_INLINE uint32_t LL_RTC_GetAlarmOutputType(RTC_TypeDef *RTCx)
963 {
964  return (uint32_t)(READ_BIT(RTCx->CR, RTC_CR_TAMPALRM_TYPE));
965 }
966 
976 __STATIC_INLINE void LL_RTC_EnableInitMode(RTC_TypeDef *RTCx)
977 {
978  /* Set the Initialization mode */
979  WRITE_REG(RTCx->ICSR, RTC_LL_INIT_MASK);
980 }
981 
988 __STATIC_INLINE void LL_RTC_DisableInitMode(RTC_TypeDef *RTCx)
989 {
990  /* Exit Initialization mode */
991  WRITE_REG(RTCx->ICSR, (uint32_t)~RTC_ICSR_INIT);
992 }
993 
994 #else /* #if defined(STM32L412xx) || defined(STM32L422xx) */
995 
1006 __STATIC_INLINE void LL_RTC_SetAlarmOutputType(RTC_TypeDef *RTCx, uint32_t Output)
1007 {
1008  MODIFY_REG(RTCx->OR, RTC_OR_ALARMOUTTYPE, Output);
1009 }
1010 
1020 __STATIC_INLINE uint32_t LL_RTC_GetAlarmOutputType(RTC_TypeDef *RTCx)
1021 {
1022  return (uint32_t)(READ_BIT(RTCx->OR, RTC_OR_ALARMOUTTYPE));
1023 }
1024 
1034 __STATIC_INLINE void LL_RTC_EnableInitMode(RTC_TypeDef *RTCx)
1035 {
1036  /* Set the Initialization mode */
1037  WRITE_REG(RTCx->ISR, RTC_LL_INIT_MASK);
1038 }
1039 
1046 __STATIC_INLINE void LL_RTC_DisableInitMode(RTC_TypeDef *RTCx)
1047 {
1048  /* Exit Initialization mode */
1049  WRITE_REG(RTCx->ISR, (uint32_t)~RTC_ISR_INIT);
1050 }
1051 #endif /* #if defined(STM32L412xx) || defined(STM32L422xx) */
1052 
1063 __STATIC_INLINE void LL_RTC_SetOutputPolarity(RTC_TypeDef *RTCx, uint32_t Polarity)
1064 {
1065  MODIFY_REG(RTCx->CR, RTC_CR_POL, Polarity);
1066 }
1067 
1076 __STATIC_INLINE uint32_t LL_RTC_GetOutputPolarity(RTC_TypeDef *RTCx)
1077 {
1078  return (uint32_t)(READ_BIT(RTCx->CR, RTC_CR_POL));
1079 }
1080 
1088 __STATIC_INLINE void LL_RTC_EnableShadowRegBypass(RTC_TypeDef *RTCx)
1089 {
1090  SET_BIT(RTCx->CR, RTC_CR_BYPSHAD);
1091 }
1092 
1099 __STATIC_INLINE void LL_RTC_DisableShadowRegBypass(RTC_TypeDef *RTCx)
1100 {
1101  CLEAR_BIT(RTCx->CR, RTC_CR_BYPSHAD);
1102 }
1103 
1110 __STATIC_INLINE uint32_t LL_RTC_IsShadowRegBypassEnabled(RTC_TypeDef *RTCx)
1111 {
1112  return (READ_BIT(RTCx->CR, RTC_CR_BYPSHAD) == (RTC_CR_BYPSHAD));
1113 }
1114 
1123 __STATIC_INLINE void LL_RTC_EnableRefClock(RTC_TypeDef *RTCx)
1124 {
1125  SET_BIT(RTCx->CR, RTC_CR_REFCKON);
1126 }
1127 
1136 __STATIC_INLINE void LL_RTC_DisableRefClock(RTC_TypeDef *RTCx)
1137 {
1138  CLEAR_BIT(RTCx->CR, RTC_CR_REFCKON);
1139 }
1140 
1148 __STATIC_INLINE void LL_RTC_SetAsynchPrescaler(RTC_TypeDef *RTCx, uint32_t AsynchPrescaler)
1149 {
1150  MODIFY_REG(RTCx->PRER, RTC_PRER_PREDIV_A, AsynchPrescaler << RTC_PRER_PREDIV_A_Pos);
1151 }
1152 
1160 __STATIC_INLINE void LL_RTC_SetSynchPrescaler(RTC_TypeDef *RTCx, uint32_t SynchPrescaler)
1161 {
1162  MODIFY_REG(RTCx->PRER, RTC_PRER_PREDIV_S, SynchPrescaler);
1163 }
1164 
1171 __STATIC_INLINE uint32_t LL_RTC_GetAsynchPrescaler(RTC_TypeDef *RTCx)
1172 {
1173  return (uint32_t)(READ_BIT(RTCx->PRER, RTC_PRER_PREDIV_A) >> RTC_PRER_PREDIV_A_Pos);
1174 }
1175 
1182 __STATIC_INLINE uint32_t LL_RTC_GetSynchPrescaler(RTC_TypeDef *RTCx)
1183 {
1184  return (uint32_t)(READ_BIT(RTCx->PRER, RTC_PRER_PREDIV_S));
1185 }
1186 
1193 __STATIC_INLINE void LL_RTC_EnableWriteProtection(RTC_TypeDef *RTCx)
1194 {
1195  WRITE_REG(RTCx->WPR, RTC_WRITE_PROTECTION_DISABLE);
1196 }
1197 
1204 __STATIC_INLINE void LL_RTC_DisableWriteProtection(RTC_TypeDef *RTCx)
1205 {
1206  WRITE_REG(RTCx->WPR, RTC_WRITE_PROTECTION_ENABLE_1);
1207  WRITE_REG(RTCx->WPR, RTC_WRITE_PROTECTION_ENABLE_2);
1208 }
1209 
1210 #if defined(STM32L412xx) || defined(STM32L422xx)
1211 
1219 __STATIC_INLINE void LL_RTC_EnableTamperOutput(RTC_TypeDef *RTCx)
1220 {
1221  SET_BIT(RTCx->CR, RTC_CR_TAMPOE);
1222 }
1223 
1230 __STATIC_INLINE void LL_RTC_DisableTamperOutput(RTC_TypeDef *RTCx)
1231 {
1232  CLEAR_BIT(RTCx->CR, RTC_CR_TAMPOE);
1233 }
1234 
1241 __STATIC_INLINE uint32_t LL_RTC_IsTamperOutputEnabled(RTC_TypeDef *RTCx)
1242 {
1243  return (READ_BIT(RTCx->CR, RTC_CR_TAMPOE) == (RTC_CR_TAMPOE));
1244 }
1245 
1252 __STATIC_INLINE void LL_RTC_EnableAlarmPullUp(RTC_TypeDef *RTCx)
1253 {
1254  SET_BIT(RTCx->CR, RTC_CR_TAMPALRM_PU);
1255 }
1256 
1263 __STATIC_INLINE void LL_RTC_DisableAlarmPullUp(RTC_TypeDef *RTCx)
1264 {
1265  CLEAR_BIT(RTCx->CR, RTC_CR_TAMPALRM_PU);
1266 }
1267 
1274 __STATIC_INLINE uint32_t LL_RTC_IsAlarmPullUpEnabled(RTC_TypeDef *RTCx)
1275 {
1276  return (READ_BIT(RTCx->CR, RTC_CR_TAMPALRM_PU) == (RTC_CR_TAMPALRM_PU));
1277 }
1278 
1288 __STATIC_INLINE void LL_RTC_EnableOutput2(RTC_TypeDef *RTCx)
1289 {
1290  SET_BIT(RTCx->CR, RTC_CR_OUT2EN);
1291 }
1292 
1299 __STATIC_INLINE void LL_RTC_DisableOutput2(RTC_TypeDef *RTCx)
1300 {
1301  CLEAR_BIT(RTCx->CR, RTC_CR_OUT2EN);
1302 }
1303 
1310 __STATIC_INLINE uint32_t LL_RTC_IsOutput2Enabled(RTC_TypeDef *RTCx)
1311 {
1312  return (READ_BIT(RTCx->CR, RTC_CR_OUT2EN) == (RTC_CR_OUT2EN));
1313 }
1314 
1315 #else /* #if defined(STM32L412xx) || defined(STM32L422xx) */
1316 
1323 __STATIC_INLINE void LL_RTC_EnableOutRemap(RTC_TypeDef *RTCx)
1324 {
1325  SET_BIT(RTCx->OR, RTC_OR_OUT_RMP);
1326 }
1327 
1334 __STATIC_INLINE void LL_RTC_DisableOutRemap(RTC_TypeDef *RTCx)
1335 {
1336  CLEAR_BIT(RTCx->OR, RTC_OR_OUT_RMP);
1337 }
1338 #endif /* #if defined(STM32L412xx) || defined(STM32L422xx) */
1339 
1359 __STATIC_INLINE void LL_RTC_TIME_SetFormat(RTC_TypeDef *RTCx, uint32_t TimeFormat)
1360 {
1361  MODIFY_REG(RTCx->TR, RTC_TR_PM, TimeFormat);
1362 }
1363 
1376 __STATIC_INLINE uint32_t LL_RTC_TIME_GetFormat(RTC_TypeDef *RTCx)
1377 {
1378  return (uint32_t)(READ_BIT(RTCx->TR, RTC_TR_PM));
1379 }
1380 
1392 __STATIC_INLINE void LL_RTC_TIME_SetHour(RTC_TypeDef *RTCx, uint32_t Hours)
1393 {
1394  MODIFY_REG(RTCx->TR, (RTC_TR_HT | RTC_TR_HU),
1395  (((Hours & 0xF0U) << (RTC_TR_HT_Pos - 4U)) | ((Hours & 0x0FU) << RTC_TR_HU_Pos)));
1396 }
1397 
1411 __STATIC_INLINE uint32_t LL_RTC_TIME_GetHour(RTC_TypeDef *RTCx)
1412 {
1413  return ((READ_BIT(RTCx->TR, (RTC_TR_HT | RTC_TR_HU))) >> RTC_TR_HU_Pos);
1414 }
1415 
1427 __STATIC_INLINE void LL_RTC_TIME_SetMinute(RTC_TypeDef *RTCx, uint32_t Minutes)
1428 {
1429  MODIFY_REG(RTCx->TR, (RTC_TR_MNT | RTC_TR_MNU),
1430  (((Minutes & 0xF0U) << (RTC_TR_MNT_Pos - 4U)) | ((Minutes & 0x0FU) << RTC_TR_MNU_Pos)));
1431 }
1432 
1446 __STATIC_INLINE uint32_t LL_RTC_TIME_GetMinute(RTC_TypeDef *RTCx)
1447 {
1448  return ((READ_BIT(RTCx->TR, (RTC_TR_MNT | RTC_TR_MNU))) >> RTC_TR_MNU_Pos);
1449 }
1450 
1462 __STATIC_INLINE void LL_RTC_TIME_SetSecond(RTC_TypeDef *RTCx, uint32_t Seconds)
1463 {
1464  MODIFY_REG(RTCx->TR, (RTC_TR_ST | RTC_TR_SU),
1465  (((Seconds & 0xF0U) << (RTC_TR_ST_Pos - 4U)) | ((Seconds & 0x0FU) << RTC_TR_SU_Pos)));
1466 }
1467 
1481 __STATIC_INLINE uint32_t LL_RTC_TIME_GetSecond(RTC_TypeDef *RTCx)
1482 {
1483  return ((READ_BIT(RTCx->TR, (RTC_TR_ST | RTC_TR_SU))) >> RTC_TR_SU_Pos);
1484 }
1485 
1507 __STATIC_INLINE void LL_RTC_TIME_Config(RTC_TypeDef *RTCx, uint32_t Format12_24, uint32_t Hours, uint32_t Minutes, uint32_t Seconds)
1508 {
1509  register uint32_t temp = 0U;
1510 
1511  temp = Format12_24 | \
1512  (((Hours & 0xF0U) << (RTC_TR_HT_Pos - 4U)) | ((Hours & 0x0FU) << RTC_TR_HU_Pos)) | \
1513  (((Minutes & 0xF0U) << (RTC_TR_MNT_Pos - 4U)) | ((Minutes & 0x0FU) << RTC_TR_MNU_Pos)) | \
1514  (((Seconds & 0xF0U) << (RTC_TR_ST_Pos - 4U)) | ((Seconds & 0x0FU) << RTC_TR_SU_Pos));
1515  MODIFY_REG(RTCx->TR, (RTC_TR_PM | RTC_TR_HT | RTC_TR_HU | RTC_TR_MNT | RTC_TR_MNU | RTC_TR_ST | RTC_TR_SU), temp);
1516 }
1517 
1535 __STATIC_INLINE uint32_t LL_RTC_TIME_Get(RTC_TypeDef *RTCx)
1536 {
1537  register uint32_t temp = 0U;
1538 
1539  temp = READ_BIT(RTCx->TR, (RTC_TR_HT | RTC_TR_HU | RTC_TR_MNT | RTC_TR_MNU | RTC_TR_ST | RTC_TR_SU));
1540  return (uint32_t)((((((temp & RTC_TR_HT) >> RTC_TR_HT_Pos) << 4U) | ((temp & RTC_TR_HU) >> RTC_TR_HU_Pos)) << RTC_OFFSET_HOUR) | \
1541  (((((temp & RTC_TR_MNT) >> RTC_TR_MNT_Pos) << 4U) | ((temp & RTC_TR_MNU) >> RTC_TR_MNU_Pos)) << RTC_OFFSET_MINUTE) | \
1542  ((((temp & RTC_TR_ST) >> RTC_TR_ST_Pos) << 4U) | ((temp & RTC_TR_SU) >> RTC_TR_SU_Pos)));
1543 }
1544 
1552 __STATIC_INLINE void LL_RTC_TIME_EnableDayLightStore(RTC_TypeDef *RTCx)
1553 {
1554  SET_BIT(RTCx->CR, RTC_CR_BKP);
1555 }
1556 
1564 __STATIC_INLINE void LL_RTC_TIME_DisableDayLightStore(RTC_TypeDef *RTCx)
1565 {
1566  CLEAR_BIT(RTCx->CR, RTC_CR_BKP);
1567 }
1568 
1575 __STATIC_INLINE uint32_t LL_RTC_TIME_IsDayLightStoreEnabled(RTC_TypeDef *RTCx)
1576 {
1577  return (READ_BIT(RTCx->CR, RTC_CR_BKP) == (RTC_CR_BKP));
1578 }
1579 
1587 __STATIC_INLINE void LL_RTC_TIME_DecHour(RTC_TypeDef *RTCx)
1588 {
1589  SET_BIT(RTCx->CR, RTC_CR_SUB1H);
1590 }
1591 
1599 __STATIC_INLINE void LL_RTC_TIME_IncHour(RTC_TypeDef *RTCx)
1600 {
1601  SET_BIT(RTCx->CR, RTC_CR_ADD1H);
1602 }
1603 
1617 __STATIC_INLINE uint32_t LL_RTC_TIME_GetSubSecond(RTC_TypeDef *RTCx)
1618 {
1619  return (uint32_t)(READ_BIT(RTCx->SSR, RTC_SSR_SS));
1620 }
1621 
1636 __STATIC_INLINE void LL_RTC_TIME_Synchronize(RTC_TypeDef *RTCx, uint32_t ShiftSecond, uint32_t Fraction)
1637 {
1638  WRITE_REG(RTCx->SHIFTR, ShiftSecond | Fraction);
1639 }
1640 
1658 __STATIC_INLINE void LL_RTC_DATE_SetYear(RTC_TypeDef *RTCx, uint32_t Year)
1659 {
1660  MODIFY_REG(RTCx->DR, (RTC_DR_YT | RTC_DR_YU),
1661  (((Year & 0xF0U) << (RTC_DR_YT_Pos - 4U)) | ((Year & 0x0FU) << RTC_DR_YU_Pos)));
1662 }
1663 
1674 __STATIC_INLINE uint32_t LL_RTC_DATE_GetYear(RTC_TypeDef *RTCx)
1675 {
1676  return ((READ_BIT(RTCx->DR, (RTC_DR_YT | RTC_DR_YU))) >> RTC_DR_YU_Pos);
1677 }
1678 
1693 __STATIC_INLINE void LL_RTC_DATE_SetWeekDay(RTC_TypeDef *RTCx, uint32_t WeekDay)
1694 {
1695  MODIFY_REG(RTCx->DR, RTC_DR_WDU, WeekDay << RTC_DR_WDU_Pos);
1696 }
1697 
1713 __STATIC_INLINE uint32_t LL_RTC_DATE_GetWeekDay(RTC_TypeDef *RTCx)
1714 {
1715  return (uint32_t)(READ_BIT(RTCx->DR, RTC_DR_WDU) >> RTC_DR_WDU_Pos);
1716 }
1717 
1739 __STATIC_INLINE void LL_RTC_DATE_SetMonth(RTC_TypeDef *RTCx, uint32_t Month)
1740 {
1741  MODIFY_REG(RTCx->DR, (RTC_DR_MT | RTC_DR_MU),
1742  (((Month & 0xF0U) << (RTC_DR_MT_Pos - 4U)) | ((Month & 0x0FU) << RTC_DR_MU_Pos)));
1743 }
1744 
1767 __STATIC_INLINE uint32_t LL_RTC_DATE_GetMonth(RTC_TypeDef *RTCx)
1768 {
1769  return ((READ_BIT(RTCx->DR, (RTC_DR_MT | RTC_DR_MU))) >> RTC_DR_MU_Pos);
1770 }
1771 
1781 __STATIC_INLINE void LL_RTC_DATE_SetDay(RTC_TypeDef *RTCx, uint32_t Day)
1782 {
1783  MODIFY_REG(RTCx->DR, (RTC_DR_DT | RTC_DR_DU),
1784  (((Day & 0xF0U) << (RTC_DR_DT_Pos - 4U)) | ((Day & 0x0FU) << RTC_DR_DU_Pos)));
1785 }
1786 
1797 __STATIC_INLINE uint32_t LL_RTC_DATE_GetDay(RTC_TypeDef *RTCx)
1798 {
1799  return ((READ_BIT(RTCx->DR, (RTC_DR_DT | RTC_DR_DU))) >> RTC_DR_DU_Pos);
1800 }
1801 
1837 __STATIC_INLINE void LL_RTC_DATE_Config(RTC_TypeDef *RTCx, uint32_t WeekDay, uint32_t Day, uint32_t Month, uint32_t Year)
1838 {
1839  register uint32_t temp = 0U;
1840 
1841  temp = (WeekDay << RTC_DR_WDU_Pos) | \
1842  (((Year & 0xF0U) << (RTC_DR_YT_Pos - 4U)) | ((Year & 0x0FU) << RTC_DR_YU_Pos)) | \
1843  (((Month & 0xF0U) << (RTC_DR_MT_Pos - 4U)) | ((Month & 0x0FU) << RTC_DR_MU_Pos)) | \
1844  (((Day & 0xF0U) << (RTC_DR_DT_Pos - 4U)) | ((Day & 0x0FU) << RTC_DR_DU_Pos));
1845 
1846  MODIFY_REG(RTCx->DR, (RTC_DR_WDU | RTC_DR_MT | RTC_DR_MU | RTC_DR_DT | RTC_DR_DU | RTC_DR_YT | RTC_DR_YU), temp);
1847 }
1848 
1865 __STATIC_INLINE uint32_t LL_RTC_DATE_Get(RTC_TypeDef *RTCx)
1866 {
1867  register uint32_t temp = 0U;
1868 
1869  temp = READ_BIT(RTCx->DR, (RTC_DR_WDU | RTC_DR_MT | RTC_DR_MU | RTC_DR_DT | RTC_DR_DU | RTC_DR_YT | RTC_DR_YU));
1870  return (uint32_t)((((temp & RTC_DR_WDU) >> RTC_DR_WDU_Pos) << RTC_OFFSET_WEEKDAY) | \
1871  (((((temp & RTC_DR_DT) >> RTC_DR_DT_Pos) << 4U) | ((temp & RTC_DR_DU) >> RTC_DR_DU_Pos)) << RTC_OFFSET_DAY) | \
1872  (((((temp & RTC_DR_MT) >> RTC_DR_MT_Pos) << 4U) | ((temp & RTC_DR_MU) >> RTC_DR_MU_Pos)) << RTC_OFFSET_MONTH) | \
1873  ((((temp & RTC_DR_YT) >> RTC_DR_YT_Pos) << 4U) | ((temp & RTC_DR_YU) >> RTC_DR_YU_Pos)));
1874 }
1875 
1891 __STATIC_INLINE void LL_RTC_ALMA_Enable(RTC_TypeDef *RTCx)
1892 {
1893  SET_BIT(RTCx->CR, RTC_CR_ALRAE);
1894 }
1895 
1903 __STATIC_INLINE void LL_RTC_ALMA_Disable(RTC_TypeDef *RTCx)
1904 {
1905  CLEAR_BIT(RTCx->CR, RTC_CR_ALRAE);
1906 }
1907 
1924 __STATIC_INLINE void LL_RTC_ALMA_SetMask(RTC_TypeDef *RTCx, uint32_t Mask)
1925 {
1926  MODIFY_REG(RTCx->ALRMAR, RTC_ALRMAR_MSK4 | RTC_ALRMAR_MSK3 | RTC_ALRMAR_MSK2 | RTC_ALRMAR_MSK1, Mask);
1927 }
1928 
1944 __STATIC_INLINE uint32_t LL_RTC_ALMA_GetMask(RTC_TypeDef *RTCx)
1945 {
1946  return (uint32_t)(READ_BIT(RTCx->ALRMAR, RTC_ALRMAR_MSK4 | RTC_ALRMAR_MSK3 | RTC_ALRMAR_MSK2 | RTC_ALRMAR_MSK1));
1947 }
1948 
1955 __STATIC_INLINE void LL_RTC_ALMA_EnableWeekday(RTC_TypeDef *RTCx)
1956 {
1957  SET_BIT(RTCx->ALRMAR, RTC_ALRMAR_WDSEL);
1958 }
1959 
1966 __STATIC_INLINE void LL_RTC_ALMA_DisableWeekday(RTC_TypeDef *RTCx)
1967 {
1968  CLEAR_BIT(RTCx->ALRMAR, RTC_ALRMAR_WDSEL);
1969 }
1970 
1980 __STATIC_INLINE void LL_RTC_ALMA_SetDay(RTC_TypeDef *RTCx, uint32_t Day)
1981 {
1982  MODIFY_REG(RTCx->ALRMAR, (RTC_ALRMAR_DT | RTC_ALRMAR_DU),
1983  (((Day & 0xF0U) << (RTC_ALRMAR_DT_Pos - 4U)) | ((Day & 0x0FU) << RTC_ALRMAR_DU_Pos)));
1984 }
1985 
1994 __STATIC_INLINE uint32_t LL_RTC_ALMA_GetDay(RTC_TypeDef *RTCx)
1995 {
1996  return ((READ_BIT(RTCx->ALRMAR, (RTC_ALRMAR_DT | RTC_ALRMAR_DU))) >> RTC_ALRMAR_DU_Pos);
1997 }
1998 
2013 __STATIC_INLINE void LL_RTC_ALMA_SetWeekDay(RTC_TypeDef *RTCx, uint32_t WeekDay)
2014 {
2015  MODIFY_REG(RTCx->ALRMAR, RTC_ALRMAR_DU, WeekDay << RTC_ALRMAR_DU_Pos);
2016 }
2017 
2031 __STATIC_INLINE uint32_t LL_RTC_ALMA_GetWeekDay(RTC_TypeDef *RTCx)
2032 {
2033  return (uint32_t)(READ_BIT(RTCx->ALRMAR, RTC_ALRMAR_DU) >> RTC_ALRMAR_DU_Pos);
2034 }
2035 
2045 __STATIC_INLINE void LL_RTC_ALMA_SetTimeFormat(RTC_TypeDef *RTCx, uint32_t TimeFormat)
2046 {
2047  MODIFY_REG(RTCx->ALRMAR, RTC_ALRMAR_PM, TimeFormat);
2048 }
2049 
2058 __STATIC_INLINE uint32_t LL_RTC_ALMA_GetTimeFormat(RTC_TypeDef *RTCx)
2059 {
2060  return (uint32_t)(READ_BIT(RTCx->ALRMAR, RTC_ALRMAR_PM));
2061 }
2062 
2072 __STATIC_INLINE void LL_RTC_ALMA_SetHour(RTC_TypeDef *RTCx, uint32_t Hours)
2073 {
2074  MODIFY_REG(RTCx->ALRMAR, (RTC_ALRMAR_HT | RTC_ALRMAR_HU),
2075  (((Hours & 0xF0U) << (RTC_ALRMAR_HT_Pos - 4U)) | ((Hours & 0x0FU) << RTC_ALRMAR_HU_Pos)));
2076 }
2077 
2086 __STATIC_INLINE uint32_t LL_RTC_ALMA_GetHour(RTC_TypeDef *RTCx)
2087 {
2088  return ((READ_BIT(RTCx->ALRMAR, (RTC_ALRMAR_HT | RTC_ALRMAR_HU))) >> RTC_ALRMAR_HU_Pos);
2089 }
2090 
2100 __STATIC_INLINE void LL_RTC_ALMA_SetMinute(RTC_TypeDef *RTCx, uint32_t Minutes)
2101 {
2102  MODIFY_REG(RTCx->ALRMAR, (RTC_ALRMAR_MNT | RTC_ALRMAR_MNU),
2103  (((Minutes & 0xF0U) << (RTC_ALRMAR_MNT_Pos - 4U)) | ((Minutes & 0x0FU) << RTC_ALRMAR_MNU_Pos)));
2104 }
2105 
2114 __STATIC_INLINE uint32_t LL_RTC_ALMA_GetMinute(RTC_TypeDef *RTCx)
2115 {
2116  return ((READ_BIT(RTCx->ALRMAR, (RTC_ALRMAR_MNT | RTC_ALRMAR_MNU))) >> RTC_ALRMAR_MNU_Pos);
2117 }
2118 
2128 __STATIC_INLINE void LL_RTC_ALMA_SetSecond(RTC_TypeDef *RTCx, uint32_t Seconds)
2129 {
2130  MODIFY_REG(RTCx->ALRMAR, (RTC_ALRMAR_ST | RTC_ALRMAR_SU),
2131  (((Seconds & 0xF0U) << (RTC_ALRMAR_ST_Pos - 4U)) | ((Seconds & 0x0FU) << RTC_ALRMAR_SU_Pos)));
2132 }
2133 
2142 __STATIC_INLINE uint32_t LL_RTC_ALMA_GetSecond(RTC_TypeDef *RTCx)
2143 {
2144  return ((READ_BIT(RTCx->ALRMAR, (RTC_ALRMAR_ST | RTC_ALRMAR_SU))) >> RTC_ALRMAR_SU_Pos);
2145 }
2146 
2165 __STATIC_INLINE void LL_RTC_ALMA_ConfigTime(RTC_TypeDef *RTCx, uint32_t Format12_24, uint32_t Hours, uint32_t Minutes, uint32_t Seconds)
2166 {
2167  register uint32_t temp = 0U;
2168 
2169  temp = Format12_24 | (((Hours & 0xF0U) << (RTC_ALRMAR_HT_Pos - 4U)) | ((Hours & 0x0FU) << RTC_ALRMAR_HU_Pos)) | \
2170  (((Minutes & 0xF0U) << (RTC_ALRMAR_MNT_Pos - 4U)) | ((Minutes & 0x0FU) << RTC_ALRMAR_MNU_Pos)) | \
2171  (((Seconds & 0xF0U) << (RTC_ALRMAR_ST_Pos - 4U)) | ((Seconds & 0x0FU) << RTC_ALRMAR_SU_Pos));
2172 
2173  MODIFY_REG(RTCx->ALRMAR, RTC_ALRMAR_PM | RTC_ALRMAR_HT | RTC_ALRMAR_HU | RTC_ALRMAR_MNT | RTC_ALRMAR_MNU | RTC_ALRMAR_ST | RTC_ALRMAR_SU, temp);
2174 }
2175 
2189 __STATIC_INLINE uint32_t LL_RTC_ALMA_GetTime(RTC_TypeDef *RTCx)
2190 {
2191  return (uint32_t)((LL_RTC_ALMA_GetHour(RTCx) << RTC_OFFSET_HOUR) | (LL_RTC_ALMA_GetMinute(RTCx) << RTC_OFFSET_MINUTE) | LL_RTC_ALMA_GetSecond(RTCx));
2192 }
2193 
2203 __STATIC_INLINE void LL_RTC_ALMA_SetSubSecondMask(RTC_TypeDef *RTCx, uint32_t Mask)
2204 {
2205  MODIFY_REG(RTCx->ALRMASSR, RTC_ALRMASSR_MASKSS, Mask << RTC_ALRMASSR_MASKSS_Pos);
2206 }
2207 
2214 __STATIC_INLINE uint32_t LL_RTC_ALMA_GetSubSecondMask(RTC_TypeDef *RTCx)
2215 {
2216  return (uint32_t)(READ_BIT(RTCx->ALRMASSR, RTC_ALRMASSR_MASKSS) >> RTC_ALRMASSR_MASKSS_Pos);
2217 }
2218 
2226 __STATIC_INLINE void LL_RTC_ALMA_SetSubSecond(RTC_TypeDef *RTCx, uint32_t Subsecond)
2227 {
2228  MODIFY_REG(RTCx->ALRMASSR, RTC_ALRMASSR_SS, Subsecond);
2229 }
2230 
2237 __STATIC_INLINE uint32_t LL_RTC_ALMA_GetSubSecond(RTC_TypeDef *RTCx)
2238 {
2239  return (uint32_t)(READ_BIT(RTCx->ALRMASSR, RTC_ALRMASSR_SS));
2240 }
2241 
2257 __STATIC_INLINE void LL_RTC_ALMB_Enable(RTC_TypeDef *RTCx)
2258 {
2259  SET_BIT(RTCx->CR, RTC_CR_ALRBE);
2260 }
2261 
2269 __STATIC_INLINE void LL_RTC_ALMB_Disable(RTC_TypeDef *RTCx)
2270 {
2271  CLEAR_BIT(RTCx->CR, RTC_CR_ALRBE);
2272 }
2273 
2290 __STATIC_INLINE void LL_RTC_ALMB_SetMask(RTC_TypeDef *RTCx, uint32_t Mask)
2291 {
2292  MODIFY_REG(RTCx->ALRMBR, RTC_ALRMBR_MSK4 | RTC_ALRMBR_MSK3 | RTC_ALRMBR_MSK2 | RTC_ALRMBR_MSK1, Mask);
2293 }
2294 
2310 __STATIC_INLINE uint32_t LL_RTC_ALMB_GetMask(RTC_TypeDef *RTCx)
2311 {
2312  return (uint32_t)(READ_BIT(RTCx->ALRMBR, RTC_ALRMBR_MSK4 | RTC_ALRMBR_MSK3 | RTC_ALRMBR_MSK2 | RTC_ALRMBR_MSK1));
2313 }
2314 
2321 __STATIC_INLINE void LL_RTC_ALMB_EnableWeekday(RTC_TypeDef *RTCx)
2322 {
2323  SET_BIT(RTCx->ALRMBR, RTC_ALRMBR_WDSEL);
2324 }
2325 
2332 __STATIC_INLINE void LL_RTC_ALMB_DisableWeekday(RTC_TypeDef *RTCx)
2333 {
2334  CLEAR_BIT(RTCx->ALRMBR, RTC_ALRMBR_WDSEL);
2335 }
2336 
2346 __STATIC_INLINE void LL_RTC_ALMB_SetDay(RTC_TypeDef *RTCx, uint32_t Day)
2347 {
2348  MODIFY_REG(RTC->ALRMBR, (RTC_ALRMBR_DT | RTC_ALRMBR_DU),
2349  (((Day & 0xF0U) << (RTC_ALRMBR_DT_Pos - 4U)) | ((Day & 0x0FU) << RTC_ALRMBR_DU_Pos)));
2350 }
2351 
2360 __STATIC_INLINE uint32_t LL_RTC_ALMB_GetDay(RTC_TypeDef *RTCx)
2361 {
2362  return ((READ_BIT(RTCx->ALRMBR, (RTC_ALRMBR_DT | RTC_ALRMBR_DU))) >> RTC_ALRMBR_DU_Pos);
2363 }
2364 
2379 __STATIC_INLINE void LL_RTC_ALMB_SetWeekDay(RTC_TypeDef *RTCx, uint32_t WeekDay)
2380 {
2381  MODIFY_REG(RTCx->ALRMBR, RTC_ALRMBR_DU, WeekDay << RTC_ALRMBR_DU_Pos);
2382 }
2383 
2397 __STATIC_INLINE uint32_t LL_RTC_ALMB_GetWeekDay(RTC_TypeDef *RTCx)
2398 {
2399  return (uint32_t)(READ_BIT(RTCx->ALRMBR, RTC_ALRMBR_DU) >> RTC_ALRMBR_DU_Pos);
2400 }
2401 
2411 __STATIC_INLINE void LL_RTC_ALMB_SetTimeFormat(RTC_TypeDef *RTCx, uint32_t TimeFormat)
2412 {
2413  MODIFY_REG(RTCx->ALRMBR, RTC_ALRMBR_PM, TimeFormat);
2414 }
2415 
2424 __STATIC_INLINE uint32_t LL_RTC_ALMB_GetTimeFormat(RTC_TypeDef *RTCx)
2425 {
2426  return (uint32_t)(READ_BIT(RTCx->ALRMBR, RTC_ALRMBR_PM));
2427 }
2428 
2438 __STATIC_INLINE void LL_RTC_ALMB_SetHour(RTC_TypeDef *RTCx, uint32_t Hours)
2439 {
2440  MODIFY_REG(RTCx->ALRMBR, (RTC_ALRMBR_HT | RTC_ALRMBR_HU),
2441  (((Hours & 0xF0U) << (RTC_ALRMBR_HT_Pos - 4U)) | ((Hours & 0x0FU) << RTC_ALRMBR_HU_Pos)));
2442 }
2443 
2452 __STATIC_INLINE uint32_t LL_RTC_ALMB_GetHour(RTC_TypeDef *RTCx)
2453 {
2454  return ((READ_BIT(RTCx->ALRMBR, (RTC_ALRMBR_HT | RTC_ALRMBR_HU))) >> RTC_ALRMBR_HU_Pos);
2455 }
2456 
2466 __STATIC_INLINE void LL_RTC_ALMB_SetMinute(RTC_TypeDef *RTCx, uint32_t Minutes)
2467 {
2468  MODIFY_REG(RTCx->ALRMBR, (RTC_ALRMBR_MNT | RTC_ALRMBR_MNU),
2469  (((Minutes & 0xF0U) << (RTC_ALRMBR_MNT_Pos - 4U)) | ((Minutes & 0x0FU) << RTC_ALRMBR_MNU_Pos)));
2470 }
2471 
2480 __STATIC_INLINE uint32_t LL_RTC_ALMB_GetMinute(RTC_TypeDef *RTCx)
2481 {
2482  return ((READ_BIT(RTCx->ALRMBR, (RTC_ALRMBR_MNT | RTC_ALRMBR_MNU))) >> RTC_ALRMBR_MNU_Pos);
2483 }
2484 
2494 __STATIC_INLINE void LL_RTC_ALMB_SetSecond(RTC_TypeDef *RTCx, uint32_t Seconds)
2495 {
2496  MODIFY_REG(RTCx->ALRMBR, (RTC_ALRMBR_ST | RTC_ALRMBR_SU),
2497  (((Seconds & 0xF0U) << (RTC_ALRMBR_ST_Pos - 4U)) | ((Seconds & 0x0FU) << RTC_ALRMBR_SU_Pos)));
2498 }
2499 
2508 __STATIC_INLINE uint32_t LL_RTC_ALMB_GetSecond(RTC_TypeDef *RTCx)
2509 {
2510  return ((READ_BIT(RTCx->ALRMBR, (RTC_ALRMBR_ST | RTC_ALRMBR_SU))) >> RTC_ALRMBR_SU_Pos);
2511 }
2512 
2531 __STATIC_INLINE void LL_RTC_ALMB_ConfigTime(RTC_TypeDef *RTCx, uint32_t Format12_24, uint32_t Hours, uint32_t Minutes, uint32_t Seconds)
2532 {
2533  register uint32_t temp = 0U;
2534 
2535  temp = Format12_24 | (((Hours & 0xF0U) << (RTC_ALRMBR_HT_Pos - 4U)) | ((Hours & 0x0FU) << RTC_ALRMBR_HU_Pos)) | \
2536  (((Minutes & 0xF0U) << (RTC_ALRMBR_MNT_Pos - 4U)) | ((Minutes & 0x0FU) << RTC_ALRMBR_MNU_Pos)) | \
2537  (((Seconds & 0xF0U) << (RTC_ALRMBR_ST_Pos - 4U)) | ((Seconds & 0x0FU) << RTC_ALRMBR_SU_Pos));
2538 
2539  MODIFY_REG(RTCx->ALRMBR, RTC_ALRMBR_PM | RTC_ALRMBR_HT | RTC_ALRMBR_HU | RTC_ALRMBR_MNT | RTC_ALRMBR_MNU | RTC_ALRMBR_ST | RTC_ALRMBR_SU, temp);
2540 }
2541 
2555 __STATIC_INLINE uint32_t LL_RTC_ALMB_GetTime(RTC_TypeDef *RTCx)
2556 {
2557  return (uint32_t)((LL_RTC_ALMB_GetHour(RTCx) << RTC_OFFSET_HOUR) | (LL_RTC_ALMB_GetMinute(RTCx) << RTC_OFFSET_MINUTE) | LL_RTC_ALMB_GetSecond(RTCx));
2558 }
2559 
2569 __STATIC_INLINE void LL_RTC_ALMB_SetSubSecondMask(RTC_TypeDef *RTCx, uint32_t Mask)
2570 {
2571  MODIFY_REG(RTCx->ALRMBSSR, RTC_ALRMBSSR_MASKSS, Mask << RTC_ALRMBSSR_MASKSS_Pos);
2572 }
2573 
2580 __STATIC_INLINE uint32_t LL_RTC_ALMB_GetSubSecondMask(RTC_TypeDef *RTCx)
2581 {
2582  return (uint32_t)(READ_BIT(RTCx->ALRMBSSR, RTC_ALRMBSSR_MASKSS) >> RTC_ALRMBSSR_MASKSS_Pos);
2583 }
2584 
2592 __STATIC_INLINE void LL_RTC_ALMB_SetSubSecond(RTC_TypeDef *RTCx, uint32_t Subsecond)
2593 {
2594  MODIFY_REG(RTCx->ALRMBSSR, RTC_ALRMBSSR_SS, Subsecond);
2595 }
2596 
2603 __STATIC_INLINE uint32_t LL_RTC_ALMB_GetSubSecond(RTC_TypeDef *RTCx)
2604 {
2605  return (uint32_t)(READ_BIT(RTCx->ALRMBSSR, RTC_ALRMBSSR_SS));
2606 }
2607 
2623 __STATIC_INLINE void LL_RTC_TS_EnableInternalEvent(RTC_TypeDef *RTCx)
2624 {
2625  SET_BIT(RTCx->CR, RTC_CR_ITSE);
2626 }
2627 
2635 __STATIC_INLINE void LL_RTC_TS_DisableInternalEvent(RTC_TypeDef *RTCx)
2636 {
2637  CLEAR_BIT(RTCx->CR, RTC_CR_ITSE);
2638 }
2639 
2647 __STATIC_INLINE void LL_RTC_TS_Enable(RTC_TypeDef *RTCx)
2648 {
2649  SET_BIT(RTCx->CR, RTC_CR_TSE);
2650 }
2651 
2659 __STATIC_INLINE void LL_RTC_TS_Disable(RTC_TypeDef *RTCx)
2660 {
2661  CLEAR_BIT(RTCx->CR, RTC_CR_TSE);
2662 }
2663 
2675 __STATIC_INLINE void LL_RTC_TS_SetActiveEdge(RTC_TypeDef *RTCx, uint32_t Edge)
2676 {
2677  MODIFY_REG(RTCx->CR, RTC_CR_TSEDGE, Edge);
2678 }
2679 
2689 __STATIC_INLINE uint32_t LL_RTC_TS_GetActiveEdge(RTC_TypeDef *RTCx)
2690 {
2691  return (uint32_t)(READ_BIT(RTCx->CR, RTC_CR_TSEDGE));
2692 }
2693 
2702 __STATIC_INLINE uint32_t LL_RTC_TS_GetTimeFormat(RTC_TypeDef *RTCx)
2703 {
2704  return (uint32_t)(READ_BIT(RTCx->TSTR, RTC_TSTR_PM));
2705 }
2706 
2715 __STATIC_INLINE uint32_t LL_RTC_TS_GetHour(RTC_TypeDef *RTCx)
2716 {
2717  return (uint32_t)(READ_BIT(RTCx->TSTR, RTC_TSTR_HT | RTC_TSTR_HU) >> RTC_TSTR_HU_Pos);
2718 }
2719 
2728 __STATIC_INLINE uint32_t LL_RTC_TS_GetMinute(RTC_TypeDef *RTCx)
2729 {
2730  return (uint32_t)(READ_BIT(RTCx->TSTR, RTC_TSTR_MNT | RTC_TSTR_MNU) >> RTC_TSTR_MNU_Pos);
2731 }
2732 
2741 __STATIC_INLINE uint32_t LL_RTC_TS_GetSecond(RTC_TypeDef *RTCx)
2742 {
2743  return (uint32_t)(READ_BIT(RTCx->TSTR, RTC_TSTR_ST | RTC_TSTR_SU));
2744 }
2745 
2759 __STATIC_INLINE uint32_t LL_RTC_TS_GetTime(RTC_TypeDef *RTCx)
2760 {
2761  return (uint32_t)(READ_BIT(RTCx->TSTR,
2762  RTC_TSTR_HT | RTC_TSTR_HU | RTC_TSTR_MNT | RTC_TSTR_MNU | RTC_TSTR_ST | RTC_TSTR_SU));
2763 }
2764 
2778 __STATIC_INLINE uint32_t LL_RTC_TS_GetWeekDay(RTC_TypeDef *RTCx)
2779 {
2780  return (uint32_t)(READ_BIT(RTCx->TSDR, RTC_TSDR_WDU) >> RTC_TSDR_WDU_Pos);
2781 }
2782 
2803 __STATIC_INLINE uint32_t LL_RTC_TS_GetMonth(RTC_TypeDef *RTCx)
2804 {
2805  return (uint32_t)(READ_BIT(RTCx->TSDR, RTC_TSDR_MT | RTC_TSDR_MU) >> RTC_TSDR_MU_Pos);
2806 }
2807 
2816 __STATIC_INLINE uint32_t LL_RTC_TS_GetDay(RTC_TypeDef *RTCx)
2817 {
2818  return (uint32_t)(READ_BIT(RTCx->TSDR, RTC_TSDR_DT | RTC_TSDR_DU));
2819 }
2820 
2833 __STATIC_INLINE uint32_t LL_RTC_TS_GetDate(RTC_TypeDef *RTCx)
2834 {
2835  return (uint32_t)(READ_BIT(RTCx->TSDR, RTC_TSDR_WDU | RTC_TSDR_MT | RTC_TSDR_MU | RTC_TSDR_DT | RTC_TSDR_DU));
2836 }
2837 
2844 __STATIC_INLINE uint32_t LL_RTC_TS_GetSubSecond(RTC_TypeDef *RTCx)
2845 {
2846  return (uint32_t)(READ_BIT(RTCx->TSSSR, RTC_TSSSR_SS));
2847 }
2848 
2853 #if defined(RTC_WAKEUP_SUPPORT)
2854 
2865 __STATIC_INLINE void LL_RTC_WAKEUP_Enable(RTC_TypeDef *RTCx)
2866 {
2867  SET_BIT(RTCx->CR, RTC_CR_WUTE);
2868 }
2869 
2877 __STATIC_INLINE void LL_RTC_WAKEUP_Disable(RTC_TypeDef *RTCx)
2878 {
2879  CLEAR_BIT(RTCx->CR, RTC_CR_WUTE);
2880 }
2881 
2888 __STATIC_INLINE uint32_t LL_RTC_WAKEUP_IsEnabled(RTC_TypeDef *RTCx)
2889 {
2890  return (READ_BIT(RTCx->CR, RTC_CR_WUTE) == (RTC_CR_WUTE));
2891 }
2892 
2908 __STATIC_INLINE void LL_RTC_WAKEUP_SetClock(RTC_TypeDef *RTCx, uint32_t WakeupClock)
2909 {
2910  MODIFY_REG(RTCx->CR, RTC_CR_WUCKSEL, WakeupClock);
2911 }
2912 
2925 __STATIC_INLINE uint32_t LL_RTC_WAKEUP_GetClock(RTC_TypeDef *RTCx)
2926 {
2927  return (uint32_t)(READ_BIT(RTCx->CR, RTC_CR_WUCKSEL));
2928 }
2929 
2938 __STATIC_INLINE void LL_RTC_WAKEUP_SetAutoReload(RTC_TypeDef *RTCx, uint32_t Value)
2939 {
2940  MODIFY_REG(RTCx->WUTR, RTC_WUTR_WUT, Value);
2941 }
2942 
2949 __STATIC_INLINE uint32_t LL_RTC_WAKEUP_GetAutoReload(RTC_TypeDef *RTCx)
2950 {
2951  return (uint32_t)(READ_BIT(RTCx->WUTR, RTC_WUTR_WUT));
2952 }
2953 
2954 #if defined(STM32L412xx) || defined(STM32L422xx)
2955 
2963 __STATIC_INLINE void LL_RTC_WAKEUP_SetAutoClr(RTC_TypeDef *RTCx, uint32_t Value)
2964 {
2965  MODIFY_REG(RTCx->WUTR, RTC_WUTR_WUTOCLR, (Value << RTC_WUTR_WUTOCLR_Pos));
2966 }
2967 
2974 __STATIC_INLINE uint32_t LL_RTC_WAKEUP_GetAutoClr(RTC_TypeDef *RTCx)
2975 {
2976  return (uint32_t)((READ_BIT(RTCx->WUTR, RTC_WUTR_WUTOCLR)) >> RTC_WUTR_WUTOCLR_Pos);
2977 }
2978 #endif /* defined(STM32L412xx) || defined(STM32L422xx) */
2979 
2983 #endif /* RTC_WAKEUP_SUPPORT */
2984 
3001 __STATIC_INLINE void LL_RTC_CAL_SetOutputFreq(RTC_TypeDef *RTCx, uint32_t Frequency)
3002 {
3003  MODIFY_REG(RTCx->CR, RTC_CR_COE | RTC_CR_COSEL, Frequency);
3004 }
3005 
3016 __STATIC_INLINE uint32_t LL_RTC_CAL_GetOutputFreq(RTC_TypeDef *RTCx)
3017 {
3018  return (uint32_t)(READ_BIT(RTCx->CR, RTC_CR_COE | RTC_CR_COSEL));
3019 }
3020 
3032 __STATIC_INLINE void LL_RTC_CAL_SetPulse(RTC_TypeDef *RTCx, uint32_t Pulse)
3033 {
3034  MODIFY_REG(RTCx->CALR, RTC_CALR_CALP, Pulse);
3035 }
3036 
3043 __STATIC_INLINE uint32_t LL_RTC_CAL_IsPulseInserted(RTC_TypeDef *RTCx)
3044 {
3045  return (READ_BIT(RTCx->CALR, RTC_CALR_CALP) == (RTC_CALR_CALP));
3046 }
3047 
3061 __STATIC_INLINE void LL_RTC_CAL_SetPeriod(RTC_TypeDef *RTCx, uint32_t Period)
3062 {
3063  MODIFY_REG(RTCx->CALR, RTC_CALR_CALW8 | RTC_CALR_CALW16, Period);
3064 }
3065 
3076 __STATIC_INLINE uint32_t LL_RTC_CAL_GetPeriod(RTC_TypeDef *RTCx)
3077 {
3078  return (uint32_t)(READ_BIT(RTCx->CALR, RTC_CALR_CALW8 | RTC_CALR_CALW16));
3079 }
3080 
3090 __STATIC_INLINE void LL_RTC_CAL_SetMinus(RTC_TypeDef *RTCx, uint32_t CalibMinus)
3091 {
3092  MODIFY_REG(RTCx->CALR, RTC_CALR_CALM, CalibMinus);
3093 }
3094 
3101 __STATIC_INLINE uint32_t LL_RTC_CAL_GetMinus(RTC_TypeDef *RTCx)
3102 {
3103  return (uint32_t)(READ_BIT(RTCx->CALR, RTC_CALR_CALM));
3104 }
3105 
3106 #if defined(STM32L412xx) || defined(STM32L422xx)
3107 
3115 __STATIC_INLINE void LL_RTC_CAL_LowPower_Enable(RTC_TypeDef *RTCx)
3116 {
3117  SET_BIT(RTCx->CALR, RTC_CALR_LPCAL);
3118 }
3119 
3128 __STATIC_INLINE void LL_RTC_CAL_LowPower_Disable(RTC_TypeDef *RTCx)
3129 {
3130  CLEAR_BIT(RTCx->CALR, RTC_CALR_LPCAL);
3131 }
3132 
3139 __STATIC_INLINE uint32_t LL_RTC_CAL_LowPower_IsEnabled(RTC_TypeDef *RTCx)
3140 {
3141  return (READ_BIT(RTCx->CALR, RTC_CALR_LPCAL) == (RTC_CALR_LPCAL));
3142 }
3143 #endif /* #if defined(STM32L412xx) || defined(STM32L422xx) */
3144 
3149 #if defined(STM32L412xx) || defined(STM32L422xx)
3150 
3156 __STATIC_INLINE void LL_RTC_TS_EnableOnTamper(RTC_TypeDef *RTCx)
3157 {
3158  SET_BIT(RTCx->CR, RTC_CR_TAMPTS);
3159 }
3160 
3167 __STATIC_INLINE void LL_RTC_TS_DisableOnTamper(RTC_TypeDef *RTCx)
3168 {
3169  CLEAR_BIT(RTCx->CR, RTC_CR_TAMPTS);
3170 }
3171 
3187 __STATIC_INLINE void LL_RTC_TAMPER_Enable(TAMP_TypeDef *TAMPx, uint32_t Tamper)
3188 {
3189  SET_BIT(TAMPx->CR1, Tamper);
3190 }
3191 
3203 __STATIC_INLINE void LL_RTC_TAMPER_Disable(TAMP_TypeDef *TAMPx, uint32_t Tamper)
3204 {
3205  CLEAR_BIT(TAMPx->CR1, Tamper);
3206 }
3207 
3220 __STATIC_INLINE void LL_RTC_TAMPER_EnableMask(TAMP_TypeDef *TAMPx, uint32_t Mask)
3221 {
3222  SET_BIT(TAMPx->CR2, Mask);
3223 }
3224 
3236 __STATIC_INLINE void LL_RTC_TAMPER_DisableMask(TAMP_TypeDef *TAMPx, uint32_t Mask)
3237 {
3238  CLEAR_BIT(TAMPx->CR2, Mask);
3239 }
3240 
3252 __STATIC_INLINE void LL_RTC_TAMPER_EnableEraseBKP(TAMP_TypeDef *TAMPx, uint32_t Tamper)
3253 {
3254  CLEAR_BIT(TAMPx->CR2, Tamper);
3255 }
3256 
3268 __STATIC_INLINE void LL_RTC_TAMPER_DisableEraseBKP(TAMP_TypeDef *TAMPx, uint32_t Tamper)
3269 {
3270  SET_BIT(TAMPx->CR2, Tamper);
3271 }
3272 
3279 __STATIC_INLINE void LL_RTC_TAMPER_DisablePullUp(TAMP_TypeDef *TAMPx)
3280 {
3281  SET_BIT(TAMPx->FLTCR, TAMP_FLTCR_TAMPPUDIS);
3282 }
3283 
3290 __STATIC_INLINE void LL_RTC_TAMPER_EnablePullUp(TAMP_TypeDef *TAMPx)
3291 {
3292  CLEAR_BIT(TAMPx->FLTCR, TAMP_FLTCR_TAMPPUDIS);
3293 }
3294 
3306 __STATIC_INLINE void LL_RTC_TAMPER_SetPrecharge(TAMP_TypeDef *TAMPx, uint32_t Duration)
3307 {
3308  MODIFY_REG(TAMPx->FLTCR, TAMP_FLTCR_TAMPPRCH, Duration);
3309 }
3310 
3321 __STATIC_INLINE uint32_t LL_RTC_TAMPER_GetPrecharge(TAMP_TypeDef *TAMPx)
3322 {
3323  return (uint32_t)(READ_BIT(TAMPx->FLTCR, TAMP_FLTCR_TAMPPRCH));
3324 }
3325 
3337 __STATIC_INLINE void LL_RTC_TAMPER_SetFilterCount(TAMP_TypeDef *TAMPx, uint32_t FilterCount)
3338 {
3339  MODIFY_REG(TAMPx->FLTCR, TAMP_FLTCR_TAMPFLT, FilterCount);
3340 }
3341 
3352 __STATIC_INLINE uint32_t LL_RTC_TAMPER_GetFilterCount(TAMP_TypeDef *TAMPx)
3353 {
3354  return (uint32_t)(READ_BIT(TAMPx->FLTCR, TAMP_FLTCR_TAMPFLT));
3355 }
3356 
3372 __STATIC_INLINE void LL_RTC_TAMPER_SetSamplingFreq(TAMP_TypeDef *TAMPx, uint32_t SamplingFreq)
3373 {
3374  MODIFY_REG(TAMPx->FLTCR, TAMP_FLTCR_TAMPFREQ, SamplingFreq);
3375 }
3376 
3391 __STATIC_INLINE uint32_t LL_RTC_TAMPER_GetSamplingFreq(TAMP_TypeDef *TAMPx)
3392 {
3393  return (uint32_t)(READ_BIT(TAMPx->FLTCR, TAMP_FLTCR_TAMPFREQ));
3394 }
3395 
3407 __STATIC_INLINE void LL_RTC_TAMPER_EnableActiveLevel(TAMP_TypeDef *TAMPx, uint32_t Tamper)
3408 {
3409  SET_BIT(TAMPx->CR2, Tamper);
3410 }
3411 
3423 __STATIC_INLINE void LL_RTC_TAMPER_DisableActiveLevel(TAMP_TypeDef *TAMPx, uint32_t Tamper)
3424 {
3425  CLEAR_BIT(TAMPx->CR2, Tamper);
3426 }
3427 
3449 __STATIC_INLINE void LL_RTC_BKP_SetRegister(TAMP_TypeDef *TAMPx, uint32_t BackupRegister, uint32_t Data)
3450 {
3451  register uint32_t tmp = 0U;
3452 
3453  tmp = (uint32_t)(&(TAMPx->BKP0R));
3454  tmp += (BackupRegister * 4U);
3455 
3456  /* Write the specified register */
3457  *(__IO uint32_t *)tmp = (uint32_t)Data;
3458 }
3459 
3472 __STATIC_INLINE uint32_t LL_RTC_BKP_GetRegister(TAMP_TypeDef *TAMPx, uint32_t BackupRegister)
3473 {
3474  register uint32_t tmp = 0U;
3475 
3476  tmp = (uint32_t)(&(TAMPx->BKP0R));
3477  tmp += (BackupRegister * 4U);
3478 
3479  /* Read the specified register */
3480  return (*(__IO uint32_t *)tmp);
3481 }
3482 
3497 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_ITS(RTC_TypeDef *RTCx)
3498 {
3499  return (READ_BIT(RTCx->SR, RTC_SR_ITSF) == (RTC_SR_ITSF));
3500 }
3501 
3508 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_RECALP(RTC_TypeDef *RTCx)
3509 {
3510  return (READ_BIT(RTCx->ICSR, RTC_ICSR_RECALPF) == (RTC_ICSR_RECALPF));
3511 }
3512 
3519 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_TSOV(RTC_TypeDef *RTCx)
3520 {
3521  return (READ_BIT(RTCx->SR, RTC_SR_TSOVF) == (RTC_SR_TSOVF));
3522 }
3523 
3530 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_TS(RTC_TypeDef *RTCx)
3531 {
3532  return (READ_BIT(RTCx->SR, RTC_SR_TSF) == (RTC_SR_TSF));
3533 }
3534 
3541 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_WUT(RTC_TypeDef *RTCx)
3542 {
3543  return (READ_BIT(RTCx->SR, RTC_SR_WUTF) == (RTC_SR_WUTF));
3544 }
3545 
3552 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_ALRB(RTC_TypeDef *RTCx)
3553 {
3554  return (READ_BIT(RTCx->SR, RTC_SR_ALRBF) == (RTC_SR_ALRBF));
3555 }
3556 
3563 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_ALRA(RTC_TypeDef *RTCx)
3564 {
3565  return (READ_BIT(RTCx->SR, RTC_SR_ALRAF) == (RTC_SR_ALRAF));
3566 }
3567 
3574 __STATIC_INLINE void LL_RTC_ClearFlag_ITS(RTC_TypeDef *RTCx)
3575 {
3576  SET_BIT(RTCx->SCR, RTC_SCR_CITSF);
3577 }
3578 
3585 __STATIC_INLINE void LL_RTC_ClearFlag_TSOV(RTC_TypeDef *RTCx)
3586 {
3587  SET_BIT(RTCx->SCR, RTC_SCR_CTSOVF);
3588 }
3589 
3596 __STATIC_INLINE void LL_RTC_ClearFlag_TS(RTC_TypeDef *RTCx)
3597 {
3598  SET_BIT(RTCx->SCR, RTC_SCR_CTSF);
3599 }
3600 
3607 __STATIC_INLINE void LL_RTC_ClearFlag_WUT(RTC_TypeDef *RTCx)
3608 {
3609  SET_BIT(RTCx->SCR, RTC_SCR_CWUTF);
3610 }
3611 
3618 __STATIC_INLINE void LL_RTC_ClearFlag_ALRB(RTC_TypeDef *RTCx)
3619 {
3620  SET_BIT(RTCx->SCR, RTC_SCR_CALRBF);
3621 }
3622 
3629 __STATIC_INLINE void LL_RTC_ClearFlag_ALRA(RTC_TypeDef *RTCx)
3630 {
3631  SET_BIT(RTCx->SCR, RTC_SCR_CALRAF);
3632 }
3633 
3640 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_INIT(RTC_TypeDef *RTCx)
3641 {
3642  return (READ_BIT(RTCx->ICSR, RTC_ICSR_INITF) == (RTC_ICSR_INITF));
3643 }
3644 
3651 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_RS(RTC_TypeDef *RTCx)
3652 {
3653  return (READ_BIT(RTCx->ICSR, RTC_ICSR_RSF) == (RTC_ICSR_RSF));
3654 }
3655 
3662 __STATIC_INLINE void LL_RTC_ClearFlag_RS(RTC_TypeDef *RTCx)
3663 {
3664  WRITE_REG(RTCx->ICSR, (~((RTC_ICSR_RSF | RTC_ICSR_INIT) & 0x000000FFU) | (RTCx->ICSR & RTC_ICSR_INIT)));
3665 }
3666 
3673 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_INITS(RTC_TypeDef *RTCx)
3674 {
3675  return (READ_BIT(RTCx->ICSR, RTC_ICSR_INITS) == (RTC_ICSR_INITS));
3676 }
3677 
3684 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_SHP(RTC_TypeDef *RTCx)
3685 {
3686  return (READ_BIT(RTCx->ICSR, RTC_ICSR_SHPF) == (RTC_ICSR_SHPF));
3687 }
3688 
3695 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_WUTW(RTC_TypeDef *RTCx)
3696 {
3697  return (READ_BIT(RTCx->ICSR, RTC_ICSR_WUTWF) == (RTC_ICSR_WUTWF));
3698 }
3699 
3706 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_ALRAM(RTC_TypeDef *RTCx)
3707 {
3708  return (READ_BIT(RTCx->MISR, RTC_MISR_ALRAMF) == (RTC_MISR_ALRAMF));
3709 }
3710 
3717 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_ALRBM(RTC_TypeDef *RTCx)
3718 {
3719  return (READ_BIT(RTCx->MISR, RTC_MISR_ALRBMF) == (RTC_MISR_ALRBMF));
3720 }
3721 
3728 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_WUTM(RTC_TypeDef *RTCx)
3729 {
3730  return (READ_BIT(RTCx->MISR, RTC_MISR_WUTMF) == (RTC_MISR_WUTMF));
3731 }
3732 
3739 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_TSM(RTC_TypeDef *RTCx)
3740 {
3741  return (READ_BIT(RTCx->MISR, RTC_MISR_TSMF) == (RTC_MISR_TSMF));
3742 }
3743 
3750 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_TSOVM(RTC_TypeDef *RTCx)
3751 {
3752  return (READ_BIT(RTCx->MISR, RTC_MISR_TSOVMF) == (RTC_MISR_TSOVMF));
3753 }
3754 
3761 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_ITSM(RTC_TypeDef *RTCx)
3762 {
3763  return (READ_BIT(RTCx->MISR, RTC_MISR_ITSMF) == (RTC_MISR_ITSMF));
3764 }
3765 
3772 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_TAMP1(TAMP_TypeDef *TAMPx)
3773 {
3774  return (READ_BIT(TAMPx->SR, TAMP_SR_TAMP1F) == (TAMP_SR_TAMP1F));
3775 }
3776 
3783 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_TAMP2(TAMP_TypeDef *TAMPx)
3784 {
3785  return (READ_BIT(TAMPx->SR, TAMP_SR_TAMP2F) == (TAMP_SR_TAMP2F));
3786 }
3787 
3794 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_TAMP1M(TAMP_TypeDef *TAMPx)
3795 {
3796  return (READ_BIT(TAMPx->MISR, TAMP_MISR_TAMP1MF) == (TAMP_MISR_TAMP1MF));
3797 }
3798 
3805 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_TAMP2M(TAMP_TypeDef *TAMPx)
3806 {
3807  return (READ_BIT(TAMPx->MISR, TAMP_MISR_TAMP2MF) == (TAMP_MISR_TAMP2MF));
3808 }
3809 
3810 
3811 
3818 __STATIC_INLINE void LL_RTC_ClearFlag_TAMP1(TAMP_TypeDef *TAMPx)
3819 {
3820  SET_BIT(TAMPx->SCR, TAMP_SCR_CTAMP1F);
3821 }
3822 
3829 __STATIC_INLINE void LL_RTC_ClearFlag_TAMP2(TAMP_TypeDef *TAMPx)
3830 {
3831  SET_BIT(TAMPx->SCR, TAMP_SCR_CTAMP2F);
3832 }
3833 
3849 __STATIC_INLINE void LL_RTC_EnableIT_TS(RTC_TypeDef *RTCx)
3850 {
3851  SET_BIT(RTCx->CR, RTC_CR_TSIE);
3852 }
3853 
3861 __STATIC_INLINE void LL_RTC_DisableIT_TS(RTC_TypeDef *RTCx)
3862 {
3863  CLEAR_BIT(RTCx->CR, RTC_CR_TSIE);
3864 }
3865 
3873 __STATIC_INLINE void LL_RTC_EnableIT_WUT(RTC_TypeDef *RTCx)
3874 {
3875  SET_BIT(RTCx->CR, RTC_CR_WUTIE);
3876 }
3877 
3885 __STATIC_INLINE void LL_RTC_DisableIT_WUT(RTC_TypeDef *RTCx)
3886 {
3887  CLEAR_BIT(RTCx->CR, RTC_CR_WUTIE);
3888 }
3889 
3897 __STATIC_INLINE void LL_RTC_EnableIT_ALRB(RTC_TypeDef *RTCx)
3898 {
3899  SET_BIT(RTCx->CR, RTC_CR_ALRBIE);
3900 }
3901 
3909 __STATIC_INLINE void LL_RTC_DisableIT_ALRB(RTC_TypeDef *RTCx)
3910 {
3911  CLEAR_BIT(RTCx->CR, RTC_CR_ALRBIE);
3912 }
3913 
3921 __STATIC_INLINE void LL_RTC_EnableIT_ALRA(RTC_TypeDef *RTCx)
3922 {
3923  SET_BIT(RTCx->CR, RTC_CR_ALRAIE);
3924 }
3925 
3933 __STATIC_INLINE void LL_RTC_DisableIT_ALRA(RTC_TypeDef *RTCx)
3934 {
3935  CLEAR_BIT(RTCx->CR, RTC_CR_ALRAIE);
3936 }
3937 
3944 __STATIC_INLINE uint32_t LL_RTC_IsEnabledIT_TS(RTC_TypeDef *RTCx)
3945 {
3946  return (READ_BIT(RTCx->CR, RTC_CR_TSIE) == (RTC_CR_TSIE));
3947 }
3948 
3955 __STATIC_INLINE uint32_t LL_RTC_IsEnabledIT_WUT(RTC_TypeDef *RTCx)
3956 {
3957  return (READ_BIT(RTCx->CR, RTC_CR_WUTIE) == (RTC_CR_WUTIE));
3958 }
3959 
3966 __STATIC_INLINE uint32_t LL_RTC_IsEnabledIT_ALRB(RTC_TypeDef *RTCx)
3967 {
3968  return (READ_BIT(RTCx->CR, RTC_CR_ALRBIE) == (RTC_CR_ALRBIE));
3969 }
3970 
3977 __STATIC_INLINE uint32_t LL_RTC_IsEnabledIT_ALRA(RTC_TypeDef *RTCx)
3978 {
3979  return (READ_BIT(RTCx->CR, RTC_CR_ALRAIE) == (RTC_CR_ALRAIE));
3980 }
3981 
3988 __STATIC_INLINE void LL_RTC_EnableIT_TAMP1(TAMP_TypeDef *TAMPx)
3989 {
3990  SET_BIT(TAMPx->IER, TAMP_IER_TAMP1IE);
3991 }
3992 
3999 __STATIC_INLINE void LL_RTC_DisableIT_TAMP1(TAMP_TypeDef *TAMPx)
4000 {
4001  CLEAR_BIT(TAMPx->IER, TAMP_IER_TAMP1IE);
4002 }
4003 
4010 __STATIC_INLINE void LL_RTC_EnableIT_TAMP2(TAMP_TypeDef *TAMPx)
4011 {
4012  SET_BIT(TAMPx->IER, TAMP_IER_TAMP2IE);
4013 }
4014 
4021 __STATIC_INLINE void LL_RTC_DisableIT_TAMP2(TAMP_TypeDef *TAMPx)
4022 {
4023  CLEAR_BIT(TAMPx->IER, TAMP_IER_TAMP2IE);
4024 }
4025 
4026 
4033 __STATIC_INLINE uint32_t LL_RTC_IsEnabledIT_TAMP1(TAMP_TypeDef *TAMPx)
4034 {
4035  return (READ_BIT(TAMPx->IER, TAMP_IER_TAMP1IE) == (TAMP_IER_TAMP1IE));
4036 }
4037 
4044 __STATIC_INLINE uint32_t LL_RTC_IsEnabledIT_TAMP2(TAMP_TypeDef *TAMPx)
4045 {
4046  return (READ_BIT(TAMPx->IER, TAMP_IER_TAMP2IE) == (TAMP_IER_TAMP2IE));
4047 }
4048 
4053 #else /* #if defined(STM32L412xx) || defined(STM32L422xx) */
4054 
4055 #if defined(RTC_TAMPCR_TAMPTS)
4056 
4062 __STATIC_INLINE void LL_RTC_TS_EnableOnTamper(RTC_TypeDef *RTCx)
4063 {
4064  SET_BIT(RTCx->TAMPCR, RTC_TAMPCR_TAMPTS);
4065 }
4066 
4073 __STATIC_INLINE void LL_RTC_TS_DisableOnTamper(RTC_TypeDef *RTCx)
4074 {
4075  CLEAR_BIT(RTCx->TAMPCR, RTC_TAMPCR_TAMPTS);
4076 }
4077 #endif /* RTC_TAMPCR_TAMPTS */
4078 
4096 __STATIC_INLINE void LL_RTC_TAMPER_Enable(RTC_TypeDef *RTCx, uint32_t Tamper)
4097 {
4098  SET_BIT(RTCx->TAMPCR, Tamper);
4099 }
4100 
4114 __STATIC_INLINE void LL_RTC_TAMPER_Disable(RTC_TypeDef *RTCx, uint32_t Tamper)
4115 {
4116  CLEAR_BIT(RTCx->TAMPCR, Tamper);
4117 }
4118 
4133 __STATIC_INLINE void LL_RTC_TAMPER_EnableMask(RTC_TypeDef *RTCx, uint32_t Mask)
4134 {
4135  SET_BIT(RTCx->TAMPCR, Mask);
4136 }
4137 
4151 __STATIC_INLINE void LL_RTC_TAMPER_DisableMask(RTC_TypeDef *RTCx, uint32_t Mask)
4152 {
4153  CLEAR_BIT(RTCx->TAMPCR, Mask);
4154 }
4155 
4169 __STATIC_INLINE void LL_RTC_TAMPER_EnableEraseBKP(RTC_TypeDef *RTCx, uint32_t Tamper)
4170 {
4171  CLEAR_BIT(RTCx->TAMPCR, Tamper);
4172 }
4173 
4187 __STATIC_INLINE void LL_RTC_TAMPER_DisableEraseBKP(RTC_TypeDef *RTCx, uint32_t Tamper)
4188 {
4189  SET_BIT(RTCx->TAMPCR, Tamper);
4190 }
4191 
4192 #if defined(RTC_TAMPCR_TAMPPUDIS)
4193 
4199 __STATIC_INLINE void LL_RTC_TAMPER_DisablePullUp(RTC_TypeDef *RTCx)
4200 {
4201  SET_BIT(RTCx->TAMPCR, RTC_TAMPCR_TAMPPUDIS);
4202 }
4203 
4210 __STATIC_INLINE void LL_RTC_TAMPER_EnablePullUp(RTC_TypeDef *RTCx)
4211 {
4212  CLEAR_BIT(RTCx->TAMPCR, RTC_TAMPCR_TAMPPUDIS);
4213 }
4214 #endif /* RTC_TAMPCR_TAMPPUDIS */
4215 
4216 #if defined(RTC_TAMPCR_TAMPPRCH)
4217 
4228 __STATIC_INLINE void LL_RTC_TAMPER_SetPrecharge(RTC_TypeDef *RTCx, uint32_t Duration)
4229 {
4230  MODIFY_REG(RTCx->TAMPCR, RTC_TAMPCR_TAMPPRCH, Duration);
4231 }
4232 
4243 __STATIC_INLINE uint32_t LL_RTC_TAMPER_GetPrecharge(RTC_TypeDef *RTCx)
4244 {
4245  return (uint32_t)(READ_BIT(RTCx->TAMPCR, RTC_TAMPCR_TAMPPRCH));
4246 }
4247 #endif /* RTC_TAMPCR_TAMPPRCH */
4248 
4249 #if defined(RTC_TAMPCR_TAMPFLT)
4250 
4261 __STATIC_INLINE void LL_RTC_TAMPER_SetFilterCount(RTC_TypeDef *RTCx, uint32_t FilterCount)
4262 {
4263  MODIFY_REG(RTCx->TAMPCR, RTC_TAMPCR_TAMPFLT, FilterCount);
4264 }
4265 
4276 __STATIC_INLINE uint32_t LL_RTC_TAMPER_GetFilterCount(RTC_TypeDef *RTCx)
4277 {
4278  return (uint32_t)(READ_BIT(RTCx->TAMPCR, RTC_TAMPCR_TAMPFLT));
4279 }
4280 #endif /* RTC_TAMPCR_TAMPFLT */
4281 
4282 #if defined(RTC_TAMPCR_TAMPFREQ)
4283 
4298 __STATIC_INLINE void LL_RTC_TAMPER_SetSamplingFreq(RTC_TypeDef *RTCx, uint32_t SamplingFreq)
4299 {
4300  MODIFY_REG(RTCx->TAMPCR, RTC_TAMPCR_TAMPFREQ, SamplingFreq);
4301 }
4302 
4317 __STATIC_INLINE uint32_t LL_RTC_TAMPER_GetSamplingFreq(RTC_TypeDef *RTCx)
4318 {
4319  return (uint32_t)(READ_BIT(RTCx->TAMPCR, RTC_TAMPCR_TAMPFREQ));
4320 }
4321 #endif /* RTC_TAMPCR_TAMPFREQ */
4322 
4336 __STATIC_INLINE void LL_RTC_TAMPER_EnableActiveLevel(RTC_TypeDef *RTCx, uint32_t Tamper)
4337 {
4338  SET_BIT(RTCx->TAMPCR, Tamper);
4339 }
4340 
4354 __STATIC_INLINE void LL_RTC_TAMPER_DisableActiveLevel(RTC_TypeDef *RTCx, uint32_t Tamper)
4355 {
4356  CLEAR_BIT(RTCx->TAMPCR, Tamper);
4357 }
4358 
4363 #if defined(RTC_BACKUP_SUPPORT)
4364 
4408 __STATIC_INLINE void LL_RTC_BAK_SetRegister(RTC_TypeDef *RTCx, uint32_t BackupRegister, uint32_t Data)
4409 {
4410  register uint32_t tmp = 0U;
4411 
4412  tmp = (uint32_t)(&(RTCx->BKP0R));
4413  tmp += (BackupRegister * 4U);
4414 
4415  /* Write the specified register */
4416  *(__IO uint32_t *)tmp = (uint32_t)Data;
4417 }
4418 
4458 __STATIC_INLINE uint32_t LL_RTC_BAK_GetRegister(RTC_TypeDef *RTCx, uint32_t BackupRegister)
4459 {
4460  register uint32_t tmp = 0U;
4461 
4462  tmp = (uint32_t)(&(RTCx->BKP0R));
4463  tmp += (BackupRegister * 4U);
4464 
4465  /* Read the specified register */
4466  return (*(__IO uint32_t *)tmp);
4467 }
4468 
4472 #endif /* RTC_BACKUP_SUPPORT */
4473 
4484 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_ITS(RTC_TypeDef *RTCx)
4485 {
4486  return (READ_BIT(RTCx->ISR, RTC_ISR_ITSF) == (RTC_ISR_ITSF));
4487 }
4488 
4495 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_RECALP(RTC_TypeDef *RTCx)
4496 {
4497  return (READ_BIT(RTCx->ISR, RTC_ISR_RECALPF) == (RTC_ISR_RECALPF));
4498 }
4499 
4500 #if defined(RTC_TAMPER3_SUPPORT)
4501 
4507 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_TAMP3(RTC_TypeDef *RTCx)
4508 {
4509  return (READ_BIT(RTCx->ISR, RTC_ISR_TAMP3F) == (RTC_ISR_TAMP3F));
4510 }
4511 #endif /* RTC_TAMPER3_SUPPORT */
4512 
4513 #if defined(RTC_TAMPER2_SUPPORT)
4514 
4520 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_TAMP2(RTC_TypeDef *RTCx)
4521 {
4522  return (READ_BIT(RTCx->ISR, RTC_ISR_TAMP2F) == (RTC_ISR_TAMP2F));
4523 }
4524 #endif /* RTC_TAMPER2_SUPPORT */
4525 
4526 #if defined(RTC_TAMPER1_SUPPORT)
4527 
4533 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_TAMP1(RTC_TypeDef *RTCx)
4534 {
4535  return (READ_BIT(RTCx->ISR, RTC_ISR_TAMP1F) == (RTC_ISR_TAMP1F));
4536 }
4537 #endif /* RTC_TAMPER1_SUPPORT */
4538 
4545 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_TSOV(RTC_TypeDef *RTCx)
4546 {
4547  return (READ_BIT(RTCx->ISR, RTC_ISR_TSOVF) == (RTC_ISR_TSOVF));
4548 }
4549 
4556 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_TS(RTC_TypeDef *RTCx)
4557 {
4558  return (READ_BIT(RTCx->ISR, RTC_ISR_TSF) == (RTC_ISR_TSF));
4559 }
4560 
4561 #if defined(RTC_WAKEUP_SUPPORT)
4562 
4568 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_WUT(RTC_TypeDef *RTCx)
4569 {
4570  return (READ_BIT(RTCx->ISR, RTC_ISR_WUTF) == (RTC_ISR_WUTF));
4571 }
4572 #endif /* RTC_WAKEUP_SUPPORT */
4573 
4580 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_ALRB(RTC_TypeDef *RTCx)
4581 {
4582  return (READ_BIT(RTCx->ISR, RTC_ISR_ALRBF) == (RTC_ISR_ALRBF));
4583 }
4584 
4591 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_ALRA(RTC_TypeDef *RTCx)
4592 {
4593  return (READ_BIT(RTCx->ISR, RTC_ISR_ALRAF) == (RTC_ISR_ALRAF));
4594 }
4595 
4602 __STATIC_INLINE void LL_RTC_ClearFlag_ITS(RTC_TypeDef *RTCx)
4603 {
4604  WRITE_REG(RTCx->ISR, (~((RTC_ISR_ITSF | RTC_ISR_INIT) & 0x0000FFFFU) | (RTCx->ISR & RTC_ISR_INIT)));
4605 }
4606 
4607 #if defined(RTC_TAMPER3_SUPPORT)
4608 
4614 __STATIC_INLINE void LL_RTC_ClearFlag_TAMP3(RTC_TypeDef *RTCx)
4615 {
4616  WRITE_REG(RTCx->ISR, (~((RTC_ISR_TAMP3F | RTC_ISR_INIT) & 0x0000FFFFU) | (RTCx->ISR & RTC_ISR_INIT)));
4617 }
4618 #endif /* RTC_TAMPER3_SUPPORT */
4619 
4620 #if defined(RTC_TAMPER2_SUPPORT)
4621 
4627 __STATIC_INLINE void LL_RTC_ClearFlag_TAMP2(RTC_TypeDef *RTCx)
4628 {
4629  WRITE_REG(RTCx->ISR, (~((RTC_ISR_TAMP2F | RTC_ISR_INIT) & 0x0000FFFFU) | (RTCx->ISR & RTC_ISR_INIT)));
4630 }
4631 #endif /* RTC_TAMPER2_SUPPORT */
4632 
4633 #if defined(RTC_TAMPER1_SUPPORT)
4634 
4640 __STATIC_INLINE void LL_RTC_ClearFlag_TAMP1(RTC_TypeDef *RTCx)
4641 {
4642  WRITE_REG(RTCx->ISR, (~((RTC_ISR_TAMP1F | RTC_ISR_INIT) & 0x0000FFFFU) | (RTCx->ISR & RTC_ISR_INIT)));
4643 }
4644 #endif /* RTC_TAMPER1_SUPPORT */
4645 
4652 __STATIC_INLINE void LL_RTC_ClearFlag_TSOV(RTC_TypeDef *RTCx)
4653 {
4654  WRITE_REG(RTCx->ISR, (~((RTC_ISR_TSOVF | RTC_ISR_INIT) & 0x0000FFFFU) | (RTCx->ISR & RTC_ISR_INIT)));
4655 }
4656 
4663 __STATIC_INLINE void LL_RTC_ClearFlag_TS(RTC_TypeDef *RTCx)
4664 {
4665  WRITE_REG(RTCx->ISR, (~((RTC_ISR_TSF | RTC_ISR_INIT) & 0x0000FFFFU) | (RTCx->ISR & RTC_ISR_INIT)));
4666 }
4667 
4668 #if defined(RTC_WAKEUP_SUPPORT)
4669 
4675 __STATIC_INLINE void LL_RTC_ClearFlag_WUT(RTC_TypeDef *RTCx)
4676 {
4677  WRITE_REG(RTCx->ISR, (~((RTC_ISR_WUTF | RTC_ISR_INIT) & 0x0000FFFFU) | (RTCx->ISR & RTC_ISR_INIT)));
4678 }
4679 #endif /* RTC_WAKEUP_SUPPORT */
4680 
4687 __STATIC_INLINE void LL_RTC_ClearFlag_ALRB(RTC_TypeDef *RTCx)
4688 {
4689  WRITE_REG(RTCx->ISR, (~((RTC_ISR_ALRBF | RTC_ISR_INIT) & 0x0000FFFFU) | (RTCx->ISR & RTC_ISR_INIT)));
4690 }
4691 
4698 __STATIC_INLINE void LL_RTC_ClearFlag_ALRA(RTC_TypeDef *RTCx)
4699 {
4700  WRITE_REG(RTCx->ISR, (~((RTC_ISR_ALRAF | RTC_ISR_INIT) & 0x0000FFFFU) | (RTCx->ISR & RTC_ISR_INIT)));
4701 }
4702 
4709 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_INIT(RTC_TypeDef *RTCx)
4710 {
4711  return (READ_BIT(RTCx->ISR, RTC_ISR_INITF) == (RTC_ISR_INITF));
4712 }
4713 
4720 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_RS(RTC_TypeDef *RTCx)
4721 {
4722  return (READ_BIT(RTCx->ISR, RTC_ISR_RSF) == (RTC_ISR_RSF));
4723 }
4724 
4731 __STATIC_INLINE void LL_RTC_ClearFlag_RS(RTC_TypeDef *RTCx)
4732 {
4733  WRITE_REG(RTCx->ISR, (~((RTC_ISR_RSF | RTC_ISR_INIT) & 0x0000FFFFU) | (RTCx->ISR & RTC_ISR_INIT)));
4734 }
4735 
4742 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_INITS(RTC_TypeDef *RTCx)
4743 {
4744  return (READ_BIT(RTCx->ISR, RTC_ISR_INITS) == (RTC_ISR_INITS));
4745 }
4746 
4753 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_SHP(RTC_TypeDef *RTCx)
4754 {
4755  return (READ_BIT(RTCx->ISR, RTC_ISR_SHPF) == (RTC_ISR_SHPF));
4756 }
4757 
4758 #if defined(RTC_WAKEUP_SUPPORT)
4759 
4765 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_WUTW(RTC_TypeDef *RTCx)
4766 {
4767  return (READ_BIT(RTCx->ISR, RTC_ISR_WUTWF) == (RTC_ISR_WUTWF));
4768 }
4769 #endif /* RTC_WAKEUP_SUPPORT */
4770 
4777 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_ALRBW(RTC_TypeDef *RTCx)
4778 {
4779  return (READ_BIT(RTCx->ISR, RTC_ISR_ALRBWF) == (RTC_ISR_ALRBWF));
4780 }
4781 
4788 __STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_ALRAW(RTC_TypeDef *RTCx)
4789 {
4790  return (READ_BIT(RTCx->ISR, RTC_ISR_ALRAWF) == (RTC_ISR_ALRAWF));
4791 }
4792 
4808 __STATIC_INLINE void LL_RTC_EnableIT_TS(RTC_TypeDef *RTCx)
4809 {
4810  SET_BIT(RTCx->CR, RTC_CR_TSIE);
4811 }
4812 
4820 __STATIC_INLINE void LL_RTC_DisableIT_TS(RTC_TypeDef *RTCx)
4821 {
4822  CLEAR_BIT(RTCx->CR, RTC_CR_TSIE);
4823 }
4824 
4825 #if defined(RTC_WAKEUP_SUPPORT)
4826 
4833 __STATIC_INLINE void LL_RTC_EnableIT_WUT(RTC_TypeDef *RTCx)
4834 {
4835  SET_BIT(RTCx->CR, RTC_CR_WUTIE);
4836 }
4837 
4845 __STATIC_INLINE void LL_RTC_DisableIT_WUT(RTC_TypeDef *RTCx)
4846 {
4847  CLEAR_BIT(RTCx->CR, RTC_CR_WUTIE);
4848 }
4849 #endif /* RTC_WAKEUP_SUPPORT */
4850 
4858 __STATIC_INLINE void LL_RTC_EnableIT_ALRB(RTC_TypeDef *RTCx)
4859 {
4860  SET_BIT(RTCx->CR, RTC_CR_ALRBIE);
4861 }
4862 
4870 __STATIC_INLINE void LL_RTC_DisableIT_ALRB(RTC_TypeDef *RTCx)
4871 {
4872  CLEAR_BIT(RTCx->CR, RTC_CR_ALRBIE);
4873 }
4874 
4882 __STATIC_INLINE void LL_RTC_EnableIT_ALRA(RTC_TypeDef *RTCx)
4883 {
4884  SET_BIT(RTCx->CR, RTC_CR_ALRAIE);
4885 }
4886 
4894 __STATIC_INLINE void LL_RTC_DisableIT_ALRA(RTC_TypeDef *RTCx)
4895 {
4896  CLEAR_BIT(RTCx->CR, RTC_CR_ALRAIE);
4897 }
4898 
4899 #if defined(RTC_TAMPER3_SUPPORT)
4900 
4906 __STATIC_INLINE void LL_RTC_EnableIT_TAMP3(RTC_TypeDef *RTCx)
4907 {
4908  SET_BIT(RTCx->TAMPCR, RTC_TAMPCR_TAMP3IE);
4909 }
4910 
4917 __STATIC_INLINE void LL_RTC_DisableIT_TAMP3(RTC_TypeDef *RTCx)
4918 {
4919  CLEAR_BIT(RTCx->TAMPCR, RTC_TAMPCR_TAMP3IE);
4920 }
4921 #endif /* RTC_TAMPER3_SUPPORT */
4922 
4923 #if defined(RTC_TAMPER2_SUPPORT)
4924 
4930 __STATIC_INLINE void LL_RTC_EnableIT_TAMP2(RTC_TypeDef *RTCx)
4931 {
4932  SET_BIT(RTCx->TAMPCR, RTC_TAMPCR_TAMP2IE);
4933 }
4934 
4941 __STATIC_INLINE void LL_RTC_DisableIT_TAMP2(RTC_TypeDef *RTCx)
4942 {
4943  CLEAR_BIT(RTCx->TAMPCR, RTC_TAMPCR_TAMP2IE);
4944 }
4945 #endif /* RTC_TAMPER2_SUPPORT */
4946 
4947 #if defined(RTC_TAMPER1_SUPPORT)
4948 
4954 __STATIC_INLINE void LL_RTC_EnableIT_TAMP1(RTC_TypeDef *RTCx)
4955 {
4956  SET_BIT(RTCx->TAMPCR, RTC_TAMPCR_TAMP1IE);
4957 }
4958 
4965 __STATIC_INLINE void LL_RTC_DisableIT_TAMP1(RTC_TypeDef *RTCx)
4966 {
4967  CLEAR_BIT(RTCx->TAMPCR, RTC_TAMPCR_TAMP1IE);
4968 }
4969 #endif /* RTC_TAMPER1_SUPPORT */
4970 
4977 __STATIC_INLINE void LL_RTC_EnableIT_TAMP(RTC_TypeDef *RTCx)
4978 {
4979  SET_BIT(RTCx->TAMPCR, RTC_TAMPCR_TAMPIE);
4980 }
4981 
4988 __STATIC_INLINE void LL_RTC_DisableIT_TAMP(RTC_TypeDef *RTCx)
4989 {
4990  CLEAR_BIT(RTCx->TAMPCR, RTC_TAMPCR_TAMPIE);
4991 }
4992 
4999 __STATIC_INLINE uint32_t LL_RTC_IsEnabledIT_TS(RTC_TypeDef *RTCx)
5000 {
5001  return (READ_BIT(RTCx->CR, RTC_CR_TSIE) == (RTC_CR_TSIE));
5002 }
5003 
5004 #if defined(RTC_WAKEUP_SUPPORT)
5005 
5011 __STATIC_INLINE uint32_t LL_RTC_IsEnabledIT_WUT(RTC_TypeDef *RTCx)
5012 {
5013  return (READ_BIT(RTCx->CR, RTC_CR_WUTIE) == (RTC_CR_WUTIE));
5014 }
5015 #endif /* RTC_WAKEUP_SUPPORT */
5016 
5023 __STATIC_INLINE uint32_t LL_RTC_IsEnabledIT_ALRB(RTC_TypeDef *RTCx)
5024 {
5025  return (READ_BIT(RTCx->CR, RTC_CR_ALRBIE) == (RTC_CR_ALRBIE));
5026 }
5027 
5034 __STATIC_INLINE uint32_t LL_RTC_IsEnabledIT_ALRA(RTC_TypeDef *RTCx)
5035 {
5036  return (READ_BIT(RTCx->CR, RTC_CR_ALRAIE) == (RTC_CR_ALRAIE));
5037 }
5038 
5039 #if defined(RTC_TAMPER3_SUPPORT)
5040 
5046 __STATIC_INLINE uint32_t LL_RTC_IsEnabledIT_TAMP3(RTC_TypeDef *RTCx)
5047 {
5048  return (READ_BIT(RTCx->TAMPCR,
5049  RTC_TAMPCR_TAMP3IE) == (RTC_TAMPCR_TAMP3IE));
5050 }
5051 #endif /* RTC_TAMPER3_SUPPORT */
5052 
5053 #if defined(RTC_TAMPER2_SUPPORT)
5054 
5060 __STATIC_INLINE uint32_t LL_RTC_IsEnabledIT_TAMP2(RTC_TypeDef *RTCx)
5061 {
5062  return (READ_BIT(RTCx->TAMPCR,
5063  RTC_TAMPCR_TAMP2IE) == (RTC_TAMPCR_TAMP2IE));
5064 
5065 }
5066 #endif /* RTC_TAMPER2_SUPPORT */
5067 
5068 #if defined(RTC_TAMPER1_SUPPORT)
5069 
5075 __STATIC_INLINE uint32_t LL_RTC_IsEnabledIT_TAMP1(RTC_TypeDef *RTCx)
5076 {
5077  return (READ_BIT(RTCx->TAMPCR,
5078  RTC_TAMPCR_TAMP1IE) == (RTC_TAMPCR_TAMP1IE));
5079 }
5080 #endif /* RTC_TAMPER1_SUPPORT */
5081 
5088 __STATIC_INLINE uint32_t LL_RTC_IsEnabledIT_TAMP(RTC_TypeDef *RTCx)
5089 {
5090  return (READ_BIT(RTCx->TAMPCR,
5091  RTC_TAMPCR_TAMPIE) == (RTC_TAMPCR_TAMPIE));
5092 }
5093 
5098 #endif /* #if defined(STM32L412xx) || defined(STM32L422xx) */
5099 
5100 #if defined(USE_FULL_LL_DRIVER)
5101 
5105 ErrorStatus LL_RTC_DeInit(RTC_TypeDef *RTCx);
5106 ErrorStatus LL_RTC_Init(RTC_TypeDef *RTCx, LL_RTC_InitTypeDef *RTC_InitStruct);
5107 void LL_RTC_StructInit(LL_RTC_InitTypeDef *RTC_InitStruct);
5108 ErrorStatus LL_RTC_TIME_Init(RTC_TypeDef *RTCx, uint32_t RTC_Format, LL_RTC_TimeTypeDef *RTC_TimeStruct);
5109 void LL_RTC_TIME_StructInit(LL_RTC_TimeTypeDef *RTC_TimeStruct);
5110 ErrorStatus LL_RTC_DATE_Init(RTC_TypeDef *RTCx, uint32_t RTC_Format, LL_RTC_DateTypeDef *RTC_DateStruct);
5111 void LL_RTC_DATE_StructInit(LL_RTC_DateTypeDef *RTC_DateStruct);
5112 ErrorStatus LL_RTC_ALMA_Init(RTC_TypeDef *RTCx, uint32_t RTC_Format, LL_RTC_AlarmTypeDef *RTC_AlarmStruct);
5113 ErrorStatus LL_RTC_ALMB_Init(RTC_TypeDef *RTCx, uint32_t RTC_Format, LL_RTC_AlarmTypeDef *RTC_AlarmStruct);
5114 void LL_RTC_ALMA_StructInit(LL_RTC_AlarmTypeDef *RTC_AlarmStruct);
5115 void LL_RTC_ALMB_StructInit(LL_RTC_AlarmTypeDef *RTC_AlarmStruct);
5116 ErrorStatus LL_RTC_EnterInitMode(RTC_TypeDef *RTCx);
5117 ErrorStatus LL_RTC_ExitInitMode(RTC_TypeDef *RTCx);
5118 ErrorStatus LL_RTC_WaitForSynchro(RTC_TypeDef *RTCx);
5119 
5123 #endif /* USE_FULL_LL_DRIVER */
5124 
5133 #endif /* defined(RTC) */
5134 
5139 #ifdef __cplusplus
5140 }
5141 #endif
5142 
5143 #endif /* STM32L4xx_LL_RTC_H */
5144 
5145 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
__STATIC_INLINE uint32_t LL_RTC_TIME_IsDayLightStoreEnabled(RTC_TypeDef *RTCx)
Check if RTC Day Light Saving stored operation has been enabled or not RTC_CR BKP LL_RTC_TIME_IsDayL...
__STATIC_INLINE void LL_RTC_TAMPER_DisableMask(TAMP_TypeDef *TAMPx, uint32_t Mask)
Disable Tamper mask flag TAMP_CR2 TAMP1MF LL_RTC_TAMPER_DisableMask TAMP_CR2 TAMP2MF LL_RTC_TAMPER_...
__STATIC_INLINE uint32_t LL_RTC_ALMB_GetSubSecondMask(RTC_TypeDef *RTCx)
Get Alarm B Mask the most-significant bits starting at this bit RTC_ALRMBSSR MASKSS LL_RTC_ALMB_GetS...
__STATIC_INLINE uint32_t LL_RTC_ALMB_GetWeekDay(RTC_TypeDef *RTCx)
Get ALARM B Weekday RTC_ALRMBR DU LL_RTC_ALMB_GetWeekDay.
__STATIC_INLINE uint32_t LL_RTC_IsEnabledIT_TAMP2(TAMP_TypeDef *TAMPx)
Check if tamper 2 interrupt is enabled or not. TAMP_IER TAMP2IE LL_RTC_IsEnabledIT_TAMP2.
__STATIC_INLINE void LL_RTC_TAMPER_DisableActiveLevel(TAMP_TypeDef *TAMPx, uint32_t Tamper)
Disable Active level for Tamper input TAMP_CR2 TAMP1TRG LL_RTC_TAMPER_DisableActiveLevel TAMP_CR2 T...
__STATIC_INLINE void LL_RTC_DisableRefClock(RTC_TypeDef *RTCx)
Disable RTC_REFIN reference clock detection (50 or 60 Hz)
__STATIC_INLINE void LL_RTC_DisableShadowRegBypass(RTC_TypeDef *RTCx)
Disable Bypass the shadow registers RTC_CR BYPSHAD LL_RTC_DisableShadowRegBypass.
__STATIC_INLINE void LL_RTC_EnableIT_ALRB(RTC_TypeDef *RTCx)
Enable Alarm B interrupt.
__STATIC_INLINE void LL_RTC_ALMA_SetTimeFormat(RTC_TypeDef *RTCx, uint32_t TimeFormat)
Set Alarm A time format (AM/24-hour or PM notation) RTC_ALRMAR PM LL_RTC_ALMA_SetTimeFormat.
__STATIC_INLINE void LL_RTC_ClearFlag_TSOV(RTC_TypeDef *RTCx)
Clear Time-stamp overflow flag RTC_SCR CTSOVF LL_RTC_ClearFlag_TSOV.
__STATIC_INLINE void LL_RTC_ALMA_ConfigTime(RTC_TypeDef *RTCx, uint32_t Format12_24, uint32_t Hours, uint32_t Minutes, uint32_t Seconds)
Set Alarm A Time (hour, minute and second) in BCD format RTC_ALRMAR PM LL_RTC_ALMA_ConfigTime RTC_A...
__STATIC_INLINE void LL_RTC_ALMA_EnableWeekday(RTC_TypeDef *RTCx)
Enable AlarmA Week day selection (DU[3:0] represents the week day. DT[1:0] is do not care) RTC_ALRMA...
__STATIC_INLINE void LL_RTC_ALMB_SetSecond(RTC_TypeDef *RTCx, uint32_t Seconds)
Set ALARM B Seconds in BCD format.
ErrorStatus LL_RTC_WaitForSynchro(RTC_TypeDef *RTCx)
Waits until the RTC Time and Day registers (RTC_TR and RTC_DR) are synchronized with RTC APB clock...
__STATIC_INLINE uint32_t LL_RTC_IsShadowRegBypassEnabled(RTC_TypeDef *RTCx)
Check if Shadow registers bypass is enabled or not. RTC_CR BYPSHAD LL_RTC_IsShadowRegBypassEnabled.
__STATIC_INLINE uint32_t LL_RTC_CAL_GetOutputFreq(RTC_TypeDef *RTCx)
Get Calibration output frequency (1 Hz or 512 Hz) RTC_CR COE LL_RTC_CAL_GetOutputFreq RTC_CR COSEL ...
__STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_WUTM(RTC_TypeDef *RTCx)
Get Wakeup timer masked flag. RTC_MISR WUTMF LL_RTC_IsActiveFlag_WUTM.
__STATIC_INLINE void LL_RTC_ALMB_ConfigTime(RTC_TypeDef *RTCx, uint32_t Format12_24, uint32_t Hours, uint32_t Minutes, uint32_t Seconds)
Set Alarm B Time (hour, minute and second) in BCD format RTC_ALRMBR PM LL_RTC_ALMB_ConfigTime RTC_A...
__STATIC_INLINE void LL_RTC_DisableTamperOutput(RTC_TypeDef *RTCx)
Disable tamper output. RTC_CR TAMPOE LL_RTC_DisableTamperOutput.
__STATIC_INLINE void LL_RTC_EnableOutput2(RTC_TypeDef *RTCx)
Enable RTC_OUT2 output.
__STATIC_INLINE void LL_RTC_TS_Disable(RTC_TypeDef *RTCx)
Disable Timestamp.
__STATIC_INLINE void LL_RTC_DATE_Config(RTC_TypeDef *RTCx, uint32_t WeekDay, uint32_t Day, uint32_t Month, uint32_t Year)
Set date (WeekDay, Day, Month and Year) in BCD format RTC_DR WDU LL_RTC_DATE_Config RTC_DR MT LL_RT...
__STATIC_INLINE void LL_RTC_BKP_SetRegister(TAMP_TypeDef *TAMPx, uint32_t BackupRegister, uint32_t Data)
Writes a data in a specified Backup data register. TAMP_BKPxR BKP LL_RTC_BKP_SetRegister.
__STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_WUT(RTC_TypeDef *RTCx)
Get Wakeup timer flag RTC_SR WUTF LL_RTC_IsActiveFlag_WUT.
ErrorStatus LL_RTC_TIME_Init(RTC_TypeDef *RTCx, uint32_t RTC_Format, LL_RTC_TimeTypeDef *RTC_TimeStruct)
Set the RTC current time.
__STATIC_INLINE void LL_RTC_TIME_DecHour(RTC_TypeDef *RTCx)
Subtract 1 hour (winter time change)
__STATIC_INLINE uint32_t LL_RTC_IsEnabledIT_TAMP3(RTC_TypeDef *RTCx)
Check if Tamper 3 interrupt is enabled or not TAMPCR TAMP3IE LL_RTC_IsEnabledIT_TAMP3.
RTC Date structure definition.
ErrorStatus LL_RTC_ExitInitMode(RTC_TypeDef *RTCx)
Exit the RTC Initialization mode.
__STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_ALRAW(RTC_TypeDef *RTCx)
Get Alarm A write flag ISR ALRAWF LL_RTC_IsActiveFlag_ALRAW.
__STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_ALRBW(RTC_TypeDef *RTCx)
Get Alarm B write flag ISR ALRBWF LL_RTC_IsActiveFlag_ALRBW.
__STATIC_INLINE uint32_t LL_RTC_ALMA_GetWeekDay(RTC_TypeDef *RTCx)
Get ALARM A Weekday RTC_ALRMAR DU LL_RTC_ALMA_GetWeekDay.
__STATIC_INLINE void LL_RTC_EnableIT_ALRA(RTC_TypeDef *RTCx)
Enable Alarm A interrupt.
__STATIC_INLINE void LL_RTC_DisableIT_ALRB(RTC_TypeDef *RTCx)
Disable Alarm B interrupt.
__STATIC_INLINE void LL_RTC_ALMA_SetSubSecond(RTC_TypeDef *RTCx, uint32_t Subsecond)
Set Alarm A Sub seconds value RCT_ALRMASSR SS LL_RTC_ALMA_SetSubSecond.
void LL_RTC_StructInit(LL_RTC_InitTypeDef *RTC_InitStruct)
Set each LL_RTC_InitTypeDef field to default value.
__STATIC_INLINE void LL_RTC_CAL_SetPulse(RTC_TypeDef *RTCx, uint32_t Pulse)
Insert or not One RTCCLK pulse every 2exp11 pulses (frequency increased by 488.5 ppm) ...
__STATIC_INLINE uint32_t LL_RTC_TS_GetSubSecond(RTC_TypeDef *RTCx)
Get time-stamp sub second value RTC_TSDR SS LL_RTC_TS_GetSubSecond.
__STATIC_INLINE void LL_RTC_TAMPER_EnableMask(TAMP_TypeDef *TAMPx, uint32_t Mask)
Enable Tamper mask flag.
__STATIC_INLINE uint32_t LL_RTC_TIME_GetHour(RTC_TypeDef *RTCx)
Get Hours in BCD format.
__STATIC_INLINE void LL_RTC_WAKEUP_SetAutoReload(RTC_TypeDef *RTCx, uint32_t Value)
Set Wakeup auto-reload value.
__STATIC_INLINE uint32_t LL_RTC_CAL_GetPeriod(RTC_TypeDef *RTCx)
Get the calibration cycle period RTC_CALR CALW8 LL_RTC_CAL_GetPeriod RTC_CALR CALW16 LL_RTC_CAL_Get...
__STATIC_INLINE uint32_t LL_RTC_ALMB_GetHour(RTC_TypeDef *RTCx)
Get ALARM B Hours in BCD format.
__STATIC_INLINE void LL_RTC_ClearFlag_ITS(RTC_TypeDef *RTCx)
Clear Internal Time-stamp flag RTC_SCR CITSF LL_RTC_ClearFlag_ITS.
__STATIC_INLINE void LL_RTC_TAMPER_Enable(TAMP_TypeDef *TAMPx, uint32_t Tamper)
Enable TAMPx input detection TAMP_CR1 TAMP1E LL_RTC_TAMPER_Enable TAMP_CR1 TAMP2E LL_RTC_TAMPER_Ena...
__STATIC_INLINE void LL_RTC_DisableAlarmPullUp(RTC_TypeDef *RTCx)
Disable internal pull-up in output mode. RTC_CR TAMPALRM_PU LL_RTC_EnableAlarmPullUp.
ErrorStatus LL_RTC_DATE_Init(RTC_TypeDef *RTCx, uint32_t RTC_Format, LL_RTC_DateTypeDef *RTC_DateStruct)
Set the RTC current date.
__STATIC_INLINE uint32_t LL_RTC_TS_GetHour(RTC_TypeDef *RTCx)
Get Timestamp Hours in BCD format.
__STATIC_INLINE uint32_t LL_RTC_TAMPER_GetPrecharge(TAMP_TypeDef *TAMPx)
Get RTC_TAMPx precharge duration TAMP_FLTCR TAMPPRCH LL_RTC_TAMPER_GetPrecharge. ...
__STATIC_INLINE uint32_t LL_RTC_TIME_Get(RTC_TypeDef *RTCx)
Get time (hour, minute and second) in BCD format.
__STATIC_INLINE void LL_RTC_DisableInitMode(RTC_TypeDef *RTCx)
Disable initialization mode (Free running mode) RTC_ICSR INIT LL_RTC_DisableInitMode.
__STATIC_INLINE void LL_RTC_TAMPER_Disable(TAMP_TypeDef *TAMPx, uint32_t Tamper)
Clear TAMPx input detection TAMP_CR1 TAMP1E LL_RTC_TAMPER_Disable TAMP_CR1 TAMP2E LL_RTC_TAMPER_Dis...
__STATIC_INLINE uint32_t LL_RTC_TS_GetMonth(RTC_TypeDef *RTCx)
Get Timestamp Month in BCD format.
__STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_TAMP3(RTC_TypeDef *RTCx)
Get RTC_TAMP3 detection flag ISR TAMP3F LL_RTC_IsActiveFlag_TAMP3.
__STATIC_INLINE void LL_RTC_CAL_LowPower_Enable(RTC_TypeDef *RTCx)
Enable Calibration Low Power.
__STATIC_INLINE void LL_RTC_ALMA_SetMinute(RTC_TypeDef *RTCx, uint32_t Minutes)
Set ALARM A Minutes in BCD format.
__STATIC_INLINE uint32_t LL_RTC_ALMB_GetSubSecond(RTC_TypeDef *RTCx)
Get Alarm B Sub seconds value RTC_ALRMBSSR SS LL_RTC_ALMB_GetSubSecond.
__STATIC_INLINE void LL_RTC_TIME_Synchronize(RTC_TypeDef *RTCx, uint32_t ShiftSecond, uint32_t Fraction)
Synchronize to a remote clock with a high degree of precision.
__STATIC_INLINE uint32_t LL_RTC_DATE_GetDay(RTC_TypeDef *RTCx)
Get Day in BCD format.
__STATIC_INLINE void LL_RTC_WAKEUP_Disable(RTC_TypeDef *RTCx)
Disable Wakeup timer.
__STATIC_INLINE uint32_t LL_RTC_DATE_GetWeekDay(RTC_TypeDef *RTCx)
Get Week day.
__STATIC_INLINE uint32_t LL_RTC_TS_GetTime(RTC_TypeDef *RTCx)
Get Timestamp time (hour, minute and second) in BCD format.
__STATIC_INLINE uint32_t LL_RTC_BAK_GetRegister(RTC_TypeDef *RTCx, uint32_t BackupRegister)
Reads data from the specified RTC Backup data Register. BKPxR BKP LL_RTC_BAK_GetRegister.
__STATIC_INLINE void LL_RTC_ALMA_DisableWeekday(RTC_TypeDef *RTCx)
Disable AlarmA Week day selection (DU[3:0] represents the date ) RTC_ALRMAR WDSEL LL_RTC_ALMA_Disabl...
__STATIC_INLINE void LL_RTC_TIME_EnableDayLightStore(RTC_TypeDef *RTCx)
Memorize whether the daylight saving time change has been performed.
__STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_TS(RTC_TypeDef *RTCx)
Get Time-stamp flag RTC_SR TSF LL_RTC_IsActiveFlag_TS.
__STATIC_INLINE void LL_RTC_CAL_SetOutputFreq(RTC_TypeDef *RTCx, uint32_t Frequency)
Set Calibration output frequency (1 Hz or 512 Hz)
__STATIC_INLINE void LL_RTC_ALMB_EnableWeekday(RTC_TypeDef *RTCx)
Enable AlarmB Week day selection (DU[3:0] represents the week day. DT[1:0] is do not care) RTC_ALRMB...
__STATIC_INLINE void LL_RTC_EnableAlarmPullUp(RTC_TypeDef *RTCx)
Enable internal pull-up in output mode. RTC_CR TAMPALRM_PU LL_RTC_EnableAlarmPullUp.
__STATIC_INLINE void LL_RTC_ClearFlag_RS(RTC_TypeDef *RTCx)
Clear Registers synchronization flag RTC_ICSR RSF LL_RTC_ClearFlag_RS.
__STATIC_INLINE void LL_RTC_DATE_SetMonth(RTC_TypeDef *RTCx, uint32_t Month)
Set Month in BCD format.
__STATIC_INLINE uint32_t LL_RTC_GetAlarmOutputType(RTC_TypeDef *RTCx)
Get RTC_ALARM output type (ALARM in push-pull or open-drain output) RTC_CR TAMPALRM_TYPE LL_RTC_SetA...
__STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_RECALP(RTC_TypeDef *RTCx)
Get Recalibration pending Flag RTC_ICSR RECALPF LL_RTC_IsActiveFlag_RECALP.
__STATIC_INLINE uint32_t LL_RTC_WAKEUP_GetAutoReload(RTC_TypeDef *RTCx)
Get Wakeup auto-reload value RTC_WUTR WUT LL_RTC_WAKEUP_GetAutoReload.
__STATIC_INLINE uint32_t LL_RTC_DATE_GetYear(RTC_TypeDef *RTCx)
Get Year in BCD format.
__STATIC_INLINE void LL_RTC_DisableIT_ALRA(RTC_TypeDef *RTCx)
Disable Alarm A interrupt.
__STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_ALRB(RTC_TypeDef *RTCx)
Get Alarm B flag RTC_SR ALRBF LL_RTC_IsActiveFlag_ALRB.
__STATIC_INLINE void LL_RTC_EnableWriteProtection(RTC_TypeDef *RTCx)
Enable the write protection for RTC registers. RTC_WPR KEY LL_RTC_EnableWriteProtection.
__STATIC_INLINE void LL_RTC_SetHourFormat(RTC_TypeDef *RTCx, uint32_t HourFormat)
Set Hours format (24 hour/day or AM/PM hour format)
__STATIC_INLINE void LL_RTC_EnableShadowRegBypass(RTC_TypeDef *RTCx)
Enable Bypass the shadow registers.
__STATIC_INLINE void LL_RTC_SetAsynchPrescaler(RTC_TypeDef *RTCx, uint32_t AsynchPrescaler)
Set Asynchronous prescaler factor RTC_PRER PREDIV_A LL_RTC_SetAsynchPrescaler.
__STATIC_INLINE void LL_RTC_TS_DisableInternalEvent(RTC_TypeDef *RTCx)
Disable internal event timestamp.
__STATIC_INLINE void LL_RTC_TS_Enable(RTC_TypeDef *RTCx)
Enable Timestamp.
__STATIC_INLINE void LL_RTC_EnableRefClock(RTC_TypeDef *RTCx)
Enable RTC_REFIN reference clock detection (50 or 60 Hz)
__STATIC_INLINE void LL_RTC_TIME_DisableDayLightStore(RTC_TypeDef *RTCx)
Disable memorization whether the daylight saving time change has been performed.
__STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_TSOV(RTC_TypeDef *RTCx)
Get Time-stamp overflow flag RTC_SR TSOVF LL_RTC_IsActiveFlag_TSOV.
__STATIC_INLINE void LL_RTC_EnableIT_TS(RTC_TypeDef *RTCx)
Enable Time-stamp interrupt.
__STATIC_INLINE void LL_RTC_SetAlarmOutputType(RTC_TypeDef *RTCx, uint32_t Output)
Set RTC_ALARM output type (ALARM in push-pull or open-drain output) RTC_CR TAMPALRM_TYPE LL_RTC_SetA...
__STATIC_INLINE void LL_RTC_DisableIT_TAMP1(TAMP_TypeDef *TAMPx)
Disable tamper 1 interrupt. TAMP_IER TAMP1IE LL_RTC_DisableIT_TAMP1.
__STATIC_INLINE uint32_t LL_RTC_DATE_GetMonth(RTC_TypeDef *RTCx)
Get Month in BCD format.
__STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_ITS(RTC_TypeDef *RTCx)
Get Internal Time-stamp flag RTC_SR ITSF LL_RTC_IsActiveFlag_ITS.
__STATIC_INLINE void LL_RTC_ALMA_SetHour(RTC_TypeDef *RTCx, uint32_t Hours)
Set ALARM A Hours in BCD format.
__STATIC_INLINE uint32_t LL_RTC_DATE_Get(RTC_TypeDef *RTCx)
Get date (WeekDay, Day, Month and Year) in BCD format.
__STATIC_INLINE void LL_RTC_TS_EnableOnTamper(RTC_TypeDef *RTCx)
Activate timestamp on tamper detection event RTC_CR TAMPTS LL_RTC_TS_EnableOnTamper.
__STATIC_INLINE void LL_RTC_SetOutputPolarity(RTC_TypeDef *RTCx, uint32_t Polarity)
Set Output polarity (pin is low when ALRAF/ALRBF/WUTF is asserted)
ErrorStatus LL_RTC_DeInit(RTC_TypeDef *RTCx)
De-Initializes the RTC registers to their default reset values.
CLEAR_BIT(hrtc->Instance->CR, RTC_CR_WUTE)
__STATIC_INLINE void LL_RTC_DisableWriteProtection(RTC_TypeDef *RTCx)
Disable the write protection for RTC registers. RTC_WPR KEY LL_RTC_DisableWriteProtection.
__STATIC_INLINE uint32_t LL_RTC_GetSynchPrescaler(RTC_TypeDef *RTCx)
Get Synchronous prescaler factor RTC_PRER PREDIV_S LL_RTC_GetSynchPrescaler.
void LL_RTC_ALMB_StructInit(LL_RTC_AlarmTypeDef *RTC_AlarmStruct)
Set each LL_RTC_AlarmTypeDef of ALARMA field to default value (Time = 00h:00mn:00sec / Day = 1st day ...
__STATIC_INLINE uint32_t LL_RTC_GetAlarmOutEvent(RTC_TypeDef *RTCx)
Get the flag to be routed to RTC_ALARM output RTC_CR OSEL LL_RTC_GetAlarmOutEvent.
__STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_TAMP1M(TAMP_TypeDef *TAMPx)
Get tamper 1 interrupt masked flag. TAMP_MISR TAMP1MF LL_RTC_IsActiveFlag_TAMP1M.
__STATIC_INLINE uint32_t LL_RTC_IsEnabledIT_TAMP1(TAMP_TypeDef *TAMPx)
Check if tamper 1 interrupt is enabled or not. TAMP_IER TAMP1IE LL_RTC_IsEnabledIT_TAMP1.
__STATIC_INLINE uint32_t LL_RTC_GetOutputPolarity(RTC_TypeDef *RTCx)
Get Output polarity RTC_CR POL LL_RTC_GetOutputPolarity.
__STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_SHP(RTC_TypeDef *RTCx)
Get Shift operation pending flag RTC_ICSR SHPF LL_RTC_IsActiveFlag_SHP.
__STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_INITS(RTC_TypeDef *RTCx)
Get Initialization status flag RTC_ICSR INITS LL_RTC_IsActiveFlag_INITS.
__STATIC_INLINE void LL_RTC_ALMA_Enable(RTC_TypeDef *RTCx)
Enable Alarm A.
__STATIC_INLINE uint32_t LL_RTC_IsTamperOutputEnabled(RTC_TypeDef *RTCx)
Check if tamper output is enabled or not. RTC_CR TAMPOE LL_RTC_IsTamperOutputEnabled.
__STATIC_INLINE uint32_t LL_RTC_ALMB_GetDay(RTC_TypeDef *RTCx)
Get ALARM B Day in BCD format.
__STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_RS(RTC_TypeDef *RTCx)
Get Registers synchronization flag RTC_ICSR RSF LL_RTC_IsActiveFlag_RS.
__STATIC_INLINE uint32_t LL_RTC_TS_GetActiveEdge(RTC_TypeDef *RTCx)
Get Time-stamp event active edge.
__STATIC_INLINE uint32_t LL_RTC_ALMB_GetMinute(RTC_TypeDef *RTCx)
Get ALARM B Minutes in BCD format.
__STATIC_INLINE void LL_RTC_EnableInitMode(RTC_TypeDef *RTCx)
Enable initialization mode.
__STATIC_INLINE uint32_t LL_RTC_ALMA_GetSecond(RTC_TypeDef *RTCx)
Get ALARM A Seconds in BCD format.
__STATIC_INLINE void LL_RTC_TAMPER_SetPrecharge(TAMP_TypeDef *TAMPx, uint32_t Duration)
Set RTC_TAMPx precharge duration TAMP_FLTCR TAMPPRCH LL_RTC_TAMPER_SetPrecharge. ...
__STATIC_INLINE uint32_t LL_RTC_IsAlarmPullUpEnabled(RTC_TypeDef *RTCx)
Check if internal pull-up in output mode is enabled or not. RTC_CR TAMPALRM_PU LL_RTC_IsAlarmPullUpE...
__STATIC_INLINE void LL_RTC_ALMB_DisableWeekday(RTC_TypeDef *RTCx)
Disable AlarmB Week day selection (DU[3:0] represents the date ) RTC_ALRMBR WDSEL LL_RTC_ALMB_Disabl...
__STATIC_INLINE void LL_RTC_EnableIT_TAMP1(TAMP_TypeDef *TAMPx)
Enable tamper 1 interrupt. TAMP_IER TAMP1IE LL_RTC_EnableIT_TAMP1.
__STATIC_INLINE void LL_RTC_TS_EnableInternalEvent(RTC_TypeDef *RTCx)
Enable internal event timestamp.
__STATIC_INLINE void LL_RTC_TIME_SetHour(RTC_TypeDef *RTCx, uint32_t Hours)
Set Hours in BCD format.
__STATIC_INLINE uint32_t LL_RTC_TAMPER_GetFilterCount(TAMP_TypeDef *TAMPx)
Get RTC_TAMPx filter count TAMP_FLTCR TAMPFLT LL_RTC_TAMPER_GetFilterCount.
__STATIC_INLINE uint32_t LL_RTC_WAKEUP_IsEnabled(RTC_TypeDef *RTCx)
Check if Wakeup timer is enabled or not RTC_CR WUTE LL_RTC_WAKEUP_IsEnabled.
__STATIC_INLINE uint32_t LL_RTC_ALMA_GetSubSecondMask(RTC_TypeDef *RTCx)
Get Alarm A Mask the most-significant bits starting at this bit RTC_ALRMASSR MASKSS LL_RTC_ALMA_GetS...
__STATIC_INLINE void LL_RTC_ALMA_SetSubSecondMask(RTC_TypeDef *RTCx, uint32_t Mask)
Set Alarm A Mask the most-significant bits starting at this bit.
__STATIC_INLINE uint32_t LL_RTC_GetAsynchPrescaler(RTC_TypeDef *RTCx)
Get Asynchronous prescaler factor RTC_PRER PREDIV_A LL_RTC_GetAsynchPrescaler.
__STATIC_INLINE void LL_RTC_DisableIT_WUT(RTC_TypeDef *RTCx)
Disable Wakeup timer interrupt.
__STATIC_INLINE void LL_RTC_BAK_SetRegister(RTC_TypeDef *RTCx, uint32_t BackupRegister, uint32_t Data)
Writes a data in a specified RTC Backup data register. BKPxR BKP LL_RTC_BAK_SetRegister.
__STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_ALRAM(RTC_TypeDef *RTCx)
Get Alarm A masked flag. RTC_MISR ALRAMF LL_RTC_IsActiveFlag_ALRAM.
__STATIC_INLINE void LL_RTC_EnableIT_WUT(RTC_TypeDef *RTCx)
Enable Wakeup timer interrupt.
RTC Time structure definition.
__STATIC_INLINE void LL_RTC_EnableIT_TAMP3(RTC_TypeDef *RTCx)
Enable Tamper 3 interrupt TAMPCR TAMP3IE LL_RTC_EnableIT_TAMP3.
__STATIC_INLINE void LL_RTC_ClearFlag_TAMP3(RTC_TypeDef *RTCx)
Clear RTC_TAMP3 detection flag ISR TAMP3F LL_RTC_ClearFlag_TAMP3.
__STATIC_INLINE uint32_t LL_RTC_ALMB_GetTimeFormat(RTC_TypeDef *RTCx)
Get ALARM B time format (AM or PM notation) RTC_ALRMBR PM LL_RTC_ALMB_GetTimeFormat.
__STATIC_INLINE void LL_RTC_DATE_SetYear(RTC_TypeDef *RTCx, uint32_t Year)
Set Year in BCD format.
void LL_RTC_ALMA_StructInit(LL_RTC_AlarmTypeDef *RTC_AlarmStruct)
Set each LL_RTC_AlarmTypeDef of ALARMA field to default value (Time = 00h:00mn:00sec / Day = 1st day ...
__STATIC_INLINE uint32_t LL_RTC_ALMA_GetHour(RTC_TypeDef *RTCx)
Get ALARM A Hours in BCD format.
__STATIC_INLINE void LL_RTC_EnableIT_TAMP(RTC_TypeDef *RTCx)
Enable all Tamper Interrupt TAMPCR TAMPIE LL_RTC_EnableIT_TAMP.
RTC Init structures definition.
__STATIC_INLINE void LL_RTC_DisableIT_TAMP(RTC_TypeDef *RTCx)
Disable all Tamper Interrupt TAMPCR TAMPIE LL_RTC_DisableIT_TAMP.
__STATIC_INLINE void LL_RTC_WAKEUP_SetAutoClr(RTC_TypeDef *RTCx, uint32_t Value)
Set Wakeup auto-clear value.
__STATIC_INLINE uint32_t LL_RTC_TS_GetWeekDay(RTC_TypeDef *RTCx)
Get Timestamp Week day RTC_TSDR WDU LL_RTC_TS_GetWeekDay.
__STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_ITSM(RTC_TypeDef *RTCx)
Get Internal Time-stamp masked flag. RTC_MISR ITSMF LL_RTC_IsActiveFlag_ITSM.
__STATIC_INLINE void LL_RTC_TAMPER_SetSamplingFreq(TAMP_TypeDef *TAMPx, uint32_t SamplingFreq)
Set Tamper sampling frequency TAMP_FLTCR TAMPFREQ LL_RTC_TAMPER_SetSamplingFreq. ...
__STATIC_INLINE uint32_t LL_RTC_TAMPER_GetSamplingFreq(TAMP_TypeDef *TAMPx)
Get Tamper sampling frequency TAMP_FLTCR TAMPFREQ LL_RTC_TAMPER_GetSamplingFreq. ...
__STATIC_INLINE void LL_RTC_ALMB_SetHour(RTC_TypeDef *RTCx, uint32_t Hours)
Set ALARM B Hours in BCD format.
void LL_RTC_DATE_StructInit(LL_RTC_DateTypeDef *RTC_DateStruct)
Set each LL_RTC_DateTypeDef field to default value (date = Monday, January 01 xx00) ...
__STATIC_INLINE uint32_t LL_RTC_TS_GetDay(RTC_TypeDef *RTCx)
Get Timestamp Day in BCD format.
__STATIC_INLINE uint32_t LL_RTC_TIME_GetSecond(RTC_TypeDef *RTCx)
Get Seconds in BCD format.
__STATIC_INLINE uint32_t LL_RTC_ALMB_GetTime(RTC_TypeDef *RTCx)
Get Alarm B Time (hour, minute and second) in BCD format.
ErrorStatus LL_RTC_ALMB_Init(RTC_TypeDef *RTCx, uint32_t RTC_Format, LL_RTC_AlarmTypeDef *RTC_AlarmStruct)
Set the RTC Alarm B.
__STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_ALRBM(RTC_TypeDef *RTCx)
Get Alarm B masked flag. RTC_MISR ALRBMF LL_RTC_IsActiveFlag_ALRBM.
__STATIC_INLINE uint32_t LL_RTC_ALMA_GetSubSecond(RTC_TypeDef *RTCx)
Get Alarm A Sub seconds value RCT_ALRMASSR SS LL_RTC_ALMA_GetSubSecond.
__STATIC_INLINE void LL_RTC_ClearFlag_TS(RTC_TypeDef *RTCx)
Clear Time-stamp flag RTC_SCR CTSF LL_RTC_ClearFlag_TS.
__STATIC_INLINE void LL_RTC_DATE_SetWeekDay(RTC_TypeDef *RTCx, uint32_t WeekDay)
Set Week day RTC_DR WDU LL_RTC_DATE_SetWeekDay.
__STATIC_INLINE uint32_t LL_RTC_ALMA_GetTime(RTC_TypeDef *RTCx)
Get Alarm B Time (hour, minute and second) in BCD format.
__STATIC_INLINE void LL_RTC_TS_SetActiveEdge(RTC_TypeDef *RTCx, uint32_t Edge)
Set Time-stamp event active edge.
__STATIC_INLINE uint32_t LL_RTC_GetHourFormat(RTC_TypeDef *RTCx)
Get Hours format (24 hour/day or AM/PM hour format) RTC_CR FMT LL_RTC_GetHourFormat.
__STATIC_INLINE void LL_RTC_ClearFlag_ALRB(RTC_TypeDef *RTCx)
Clear Alarm B flag RTC_SCR CALRBF LL_RTC_ClearFlag_ALRB.
__STATIC_INLINE void LL_RTC_CAL_SetPeriod(RTC_TypeDef *RTCx, uint32_t Period)
Set the calibration cycle period.
__STATIC_INLINE void LL_RTC_ALMB_SetSubSecond(RTC_TypeDef *RTCx, uint32_t Subsecond)
Set Alarm B Sub seconds value RTC_ALRMBSSR SS LL_RTC_ALMB_SetSubSecond.
__STATIC_INLINE void LL_RTC_DisableOutRemap(RTC_TypeDef *RTCx)
Disable RTC_OUT remap OR OUT_RMP LL_RTC_DisableOutRemap.
__STATIC_INLINE void LL_RTC_ClearFlag_TAMP2(TAMP_TypeDef *TAMPx)
Clear tamper 2 detection flag. TAMP_SCR CTAMP2F LL_RTC_ClearFlag_TAMP2.
__STATIC_INLINE void LL_RTC_TAMPER_EnableEraseBKP(TAMP_TypeDef *TAMPx, uint32_t Tamper)
Enable backup register erase after Tamper event detection TAMP_CR2 TAMP1NOERASE LL_RTC_TAMPER_Enable...
__STATIC_INLINE void LL_RTC_ALMB_Enable(RTC_TypeDef *RTCx)
Enable Alarm B.
__STATIC_INLINE void LL_RTC_ALMB_SetSubSecondMask(RTC_TypeDef *RTCx, uint32_t Mask)
Set Alarm B Mask the most-significant bits starting at this bit.
LL_RTC_TimeTypeDef AlarmTime
__STATIC_INLINE uint32_t LL_RTC_TS_GetDate(RTC_TypeDef *RTCx)
Get Timestamp date (WeekDay, Day and Month) in BCD format.
__STATIC_INLINE uint32_t LL_RTC_IsOutput2Enabled(RTC_TypeDef *RTCx)
Check if RTC_OUT2 output is enabled or not. RTC_CR OUT2EN LL_RTC_IsOutput2Enabled.
__STATIC_INLINE void LL_RTC_TAMPER_EnablePullUp(TAMP_TypeDef *TAMPx)
Enable RTC_TAMPx pull-up disable ( Precharge RTC_TAMPx pins before sampling) TAMP_FLTCR TAMPPUDIS LL...
__STATIC_INLINE void LL_RTC_ALMA_SetMask(RTC_TypeDef *RTCx, uint32_t Mask)
Specify the Alarm A masks. RTC_ALRMAR MSK4 LL_RTC_ALMA_SetMask RTC_ALRMAR MSK3 LL_RTC_ALMA_SetMask ...
__STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_INIT(RTC_TypeDef *RTCx)
Get Initialization flag RTC_ICSR INITF LL_RTC_IsActiveFlag_INIT.
__STATIC_INLINE uint32_t LL_RTC_CAL_IsPulseInserted(RTC_TypeDef *RTCx)
Check if one RTCCLK has been inserted or not every 2exp11 pulses (frequency increased by 488...
__STATIC_INLINE void LL_RTC_TIME_Config(RTC_TypeDef *RTCx, uint32_t Format12_24, uint32_t Hours, uint32_t Minutes, uint32_t Seconds)
Set time (hour, minute and second) in BCD format.
__STATIC_INLINE void LL_RTC_TIME_SetFormat(RTC_TypeDef *RTCx, uint32_t TimeFormat)
Set time format (AM/24-hour or PM notation)
__STATIC_INLINE uint32_t LL_RTC_TIME_GetMinute(RTC_TypeDef *RTCx)
Get Minutes in BCD format.
__STATIC_INLINE void LL_RTC_WAKEUP_SetClock(RTC_TypeDef *RTCx, uint32_t WakeupClock)
Select Wakeup clock.
__STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_TSM(RTC_TypeDef *RTCx)
Get Time-stamp masked flag. RTC_MISR TSMF LL_RTC_IsActiveFlag_TSM.
__STATIC_INLINE void LL_RTC_ALMA_Disable(RTC_TypeDef *RTCx)
Disable Alarm A.
RTC Alarm structure definition.
__STATIC_INLINE uint32_t LL_RTC_IsEnabledIT_TS(RTC_TypeDef *RTCx)
Check if Time-stamp interrupt is enabled or not RTC_CR TSIE LL_RTC_IsEnabledIT_TS.
__STATIC_INLINE uint32_t LL_RTC_ALMA_GetMinute(RTC_TypeDef *RTCx)
Get ALARM A Minutes in BCD format.
__STATIC_INLINE uint32_t LL_RTC_ALMA_GetMask(RTC_TypeDef *RTCx)
Get the Alarm A masks. RTC_ALRMAR MSK4 LL_RTC_ALMA_GetMask RTC_ALRMAR MSK3 LL_RTC_ALMA_GetMask RTC...
__STATIC_INLINE void LL_RTC_DisableIT_TAMP3(RTC_TypeDef *RTCx)
Disable Tamper 3 interrupt TAMPCR TAMP3IE LL_RTC_DisableIT_TAMP3.
__STATIC_INLINE void LL_RTC_TAMPER_EnableActiveLevel(TAMP_TypeDef *TAMPx, uint32_t Tamper)
Enable Active level for Tamper input TAMP_CR2 TAMP1TRG LL_RTC_TAMPER_EnableActiveLevel TAMP_CR2 TAM...
__STATIC_INLINE void LL_RTC_EnableOutRemap(RTC_TypeDef *RTCx)
Enable RTC_OUT remap OR OUT_RMP LL_RTC_EnableOutRemap.
__STATIC_INLINE uint32_t LL_RTC_TS_GetSecond(RTC_TypeDef *RTCx)
Get Timestamp Seconds in BCD format.
__STATIC_INLINE uint32_t LL_RTC_ALMB_GetSecond(RTC_TypeDef *RTCx)
Get ALARM B Seconds in BCD format.
__STATIC_INLINE void LL_RTC_TIME_IncHour(RTC_TypeDef *RTCx)
Add 1 hour (summer time change)
__STATIC_INLINE uint32_t LL_RTC_ALMA_GetTimeFormat(RTC_TypeDef *RTCx)
Get Alarm A time format (AM or PM notation) RTC_ALRMAR PM LL_RTC_ALMA_GetTimeFormat.
__STATIC_INLINE void LL_RTC_ALMB_Disable(RTC_TypeDef *RTCx)
Disable Alarm B.
__STATIC_INLINE uint32_t LL_RTC_CAL_LowPower_IsEnabled(RTC_TypeDef *RTCx)
Check if Calibration Low Power is enabled or not RTC_CALR LPCAL LL_RTC_CAL_LowPower_IsEnabled.
__STATIC_INLINE void LL_RTC_DATE_SetDay(RTC_TypeDef *RTCx, uint32_t Day)
Set Day in BCD format.
ErrorStatus LL_RTC_Init(RTC_TypeDef *RTCx, LL_RTC_InitTypeDef *RTC_InitStruct)
Initializes the RTC registers according to the specified parameters in RTC_InitStruct.
__STATIC_INLINE uint32_t LL_RTC_TIME_GetSubSecond(RTC_TypeDef *RTCx)
Get Sub second value in the synchronous prescaler counter.
__STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_ALRA(RTC_TypeDef *RTCx)
Get Alarm A flag RTC_SR ALRAF LL_RTC_IsActiveFlag_ALRA.
MODIFY_REG(hrtc->Instance->CR, RTC_CR_WUCKSEL,(uint32_t) WakeUpClock)
__STATIC_INLINE uint32_t LL_RTC_IsEnabledIT_TAMP(RTC_TypeDef *RTCx)
Check if all the TAMPER interrupts are enabled or not TAMPCR TAMPIE LL_RTC_IsEnabledIT_TAMP.
__STATIC_INLINE void LL_RTC_ALMA_SetSecond(RTC_TypeDef *RTCx, uint32_t Seconds)
Set ALARM A Seconds in BCD format.
__STATIC_INLINE void LL_RTC_ClearFlag_WUT(RTC_TypeDef *RTCx)
Clear Wakeup timer flag RTC_SCR CWUTF LL_RTC_ClearFlag_WUT.
__STATIC_INLINE void LL_RTC_ALMB_SetDay(RTC_TypeDef *RTCx, uint32_t Day)
Set ALARM B Day in BCD format.
__STATIC_INLINE void LL_RTC_WAKEUP_Enable(RTC_TypeDef *RTCx)
Enable Wakeup timer.
__STATIC_INLINE void LL_RTC_TIME_SetMinute(RTC_TypeDef *RTCx, uint32_t Minutes)
Set Minutes in BCD format.
__STATIC_INLINE void LL_RTC_ALMA_SetWeekDay(RTC_TypeDef *RTCx, uint32_t WeekDay)
Set ALARM A Weekday RTC_ALRMAR DU LL_RTC_ALMA_SetWeekDay.
__STATIC_INLINE void LL_RTC_DisableIT_TS(RTC_TypeDef *RTCx)
Disable Time-stamp interrupt.
__STATIC_INLINE uint32_t LL_RTC_IsEnabledIT_WUT(RTC_TypeDef *RTCx)
Check if Wakeup timer interrupt is enabled or not RTC_CR WUTIE LL_RTC_IsEnabledIT_WUT.
__STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_TAMP1(TAMP_TypeDef *TAMPx)
Get tamper 1 detection flag. TAMP_SR TAMP1F LL_RTC_IsActiveFlag_TAMP1.
__STATIC_INLINE void LL_RTC_SetAlarmOutEvent(RTC_TypeDef *RTCx, uint32_t AlarmOutput)
Select the flag to be routed to RTC_ALARM output.
__STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_TSOVM(RTC_TypeDef *RTCx)
Get Time-stamp overflow masked flag. RTC_MISR TSOVMF LL_RTC_IsActiveFlag_TSOVM.
__STATIC_INLINE void LL_RTC_ClearFlag_ALRA(RTC_TypeDef *RTCx)
Clear Alarm A flag RTC_SCR CALRAF LL_RTC_ClearFlag_ALRA.
__STATIC_INLINE void LL_RTC_TS_DisableOnTamper(RTC_TypeDef *RTCx)
Disable timestamp on tamper detection event RTC_CR TAMPTS LL_RTC_TS_DisableOnTamper.
__STATIC_INLINE void LL_RTC_CAL_LowPower_Disable(RTC_TypeDef *RTCx)
Disable Calibration Low Power.
__STATIC_INLINE uint32_t LL_RTC_TIME_GetFormat(RTC_TypeDef *RTCx)
Get time format (AM or PM notation)
__STATIC_INLINE uint32_t LL_RTC_CAL_GetMinus(RTC_TypeDef *RTCx)
Get Calibration minus RTC_CALR CALM LL_RTC_CAL_GetMinus.
__STATIC_INLINE uint32_t LL_RTC_ALMB_GetMask(RTC_TypeDef *RTCx)
Get the Alarm B masks. RTC_ALRMBR MSK4 LL_RTC_ALMB_GetMask RTC_ALRMBR MSK3 LL_RTC_ALMB_GetMask RTC...
void LL_RTC_TIME_StructInit(LL_RTC_TimeTypeDef *RTC_TimeStruct)
Set each LL_RTC_TimeTypeDef field to default value (Time = 00h:00min:00sec).
__STATIC_INLINE void LL_RTC_EnableIT_TAMP2(TAMP_TypeDef *TAMPx)
Enable tamper 2 interrupt. TAMP_IER TAMP2IE LL_RTC_EnableIT_TAMP2.
ErrorStatus LL_RTC_ALMA_Init(RTC_TypeDef *RTCx, uint32_t RTC_Format, LL_RTC_AlarmTypeDef *RTC_AlarmStruct)
Set the RTC Alarm A.
__STATIC_INLINE uint32_t LL_RTC_BKP_GetRegister(TAMP_TypeDef *TAMPx, uint32_t BackupRegister)
Reads data from the specified RTC Backup data Register. TAMP_BKPxR BKP LL_RTC_BKP_GetRegister.
__STATIC_INLINE void LL_RTC_TAMPER_DisablePullUp(TAMP_TypeDef *TAMPx)
Disable RTC_TAMPx pull-up disable (Disable precharge of RTC_TAMPx pins) TAMP_FLTCR TAMPPUDIS LL_RTC_...
__STATIC_INLINE uint32_t LL_RTC_WAKEUP_GetClock(RTC_TypeDef *RTCx)
Get Wakeup clock RTC_CR WUCKSEL LL_RTC_WAKEUP_GetClock.
__STATIC_INLINE void LL_RTC_ALMB_SetTimeFormat(RTC_TypeDef *RTCx, uint32_t TimeFormat)
Set ALARM B time format (AM/24-hour or PM notation) RTC_ALRMBR PM LL_RTC_ALMB_SetTimeFormat.
__STATIC_INLINE void LL_RTC_SetSynchPrescaler(RTC_TypeDef *RTCx, uint32_t SynchPrescaler)
Set Synchronous prescaler factor RTC_PRER PREDIV_S LL_RTC_SetSynchPrescaler.
__STATIC_INLINE void LL_RTC_CAL_SetMinus(RTC_TypeDef *RTCx, uint32_t CalibMinus)
Set Calibration minus.
__STATIC_INLINE void LL_RTC_DisableOutput2(RTC_TypeDef *RTCx)
Disable RTC_OUT2 output RTC_CR OUT2EN LL_RTC_DisableOutput2.
__STATIC_INLINE void LL_RTC_TIME_SetSecond(RTC_TypeDef *RTCx, uint32_t Seconds)
Set Seconds in BCD format.
__STATIC_INLINE uint32_t LL_RTC_TS_GetMinute(RTC_TypeDef *RTCx)
Get Timestamp Minutes in BCD format.
__STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_WUTW(RTC_TypeDef *RTCx)
Get Wakeup timer write flag RTC_ICSR WUTWF LL_RTC_IsActiveFlag_WUTW.
__STATIC_INLINE uint32_t LL_RTC_IsEnabledIT_ALRA(RTC_TypeDef *RTCx)
Check if Alarm A interrupt is enabled or not RTC_CR ALRAIE LL_RTC_IsEnabledIT_ALRA.
__STATIC_INLINE void LL_RTC_ALMB_SetWeekDay(RTC_TypeDef *RTCx, uint32_t WeekDay)
Set ALARM B Weekday RTC_ALRMBR DU LL_RTC_ALMB_SetWeekDay.
__STATIC_INLINE void LL_RTC_DisableIT_TAMP2(TAMP_TypeDef *TAMPx)
Disable tamper 2 interrupt. TAMP_IER TAMP2IE LL_RTC_DisableIT_TAMP2.
__STATIC_INLINE uint32_t LL_RTC_IsEnabledIT_ALRB(RTC_TypeDef *RTCx)
Check if Alarm B interrupt is enabled or not RTC_CR ALRBIE LL_RTC_IsEnabledIT_ALRB.
__STATIC_INLINE void LL_RTC_ALMB_SetMinute(RTC_TypeDef *RTCx, uint32_t Minutes)
Set ALARM B Minutes in BCD format.
__STATIC_INLINE uint32_t LL_RTC_WAKEUP_GetAutoClr(RTC_TypeDef *RTCx)
Get Wakeup auto-clear value RTC_WUTR WUTOCLR LL_RTC_WAKEUP_GetAutoClr.
__STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_TAMP2(TAMP_TypeDef *TAMPx)
Get tamper 2 detection flag. TAMP_SR TAMP2F LL_RTC_IsActiveFlag_TAMP2.
__STATIC_INLINE void LL_RTC_ALMA_SetDay(RTC_TypeDef *RTCx, uint32_t Day)
Set ALARM A Day in BCD format.
__STATIC_INLINE uint32_t LL_RTC_ALMA_GetDay(RTC_TypeDef *RTCx)
Get ALARM A Day in BCD format.
__STATIC_INLINE void LL_RTC_ALMB_SetMask(RTC_TypeDef *RTCx, uint32_t Mask)
Specify the Alarm B masks. RTC_ALRMBR MSK4 LL_RTC_ALMB_SetMask RTC_ALRMBR MSK3 LL_RTC_ALMB_SetMask ...
__STATIC_INLINE uint32_t LL_RTC_TS_GetTimeFormat(RTC_TypeDef *RTCx)
Get Timestamp AM/PM notation (AM or 24-hour format) RTC_TSTR PM LL_RTC_TS_GetTimeFormat.
__STATIC_INLINE uint32_t LL_RTC_IsActiveFlag_TAMP2M(TAMP_TypeDef *TAMPx)
Get tamper 2 interrupt masked flag. TAMP_MISR TAMP2MF LL_RTC_IsActiveFlag_TAMP2M.
__STATIC_INLINE void LL_RTC_ClearFlag_TAMP1(TAMP_TypeDef *TAMPx)
Clear tamper 1 detection flag. TAMP_SCR CTAMP1F LL_RTC_ClearFlag_TAMP1.
__STATIC_INLINE void LL_RTC_EnableTamperOutput(RTC_TypeDef *RTCx)
Enable tamper output.
__STATIC_INLINE void LL_RTC_TAMPER_DisableEraseBKP(TAMP_TypeDef *TAMPx, uint32_t Tamper)
Disable backup register erase after Tamper event detection TAMP_CR2 TAMP1NOERASE LL_RTC_TAMPER_Disab...
ErrorStatus LL_RTC_EnterInitMode(RTC_TypeDef *RTCx)
Enters the RTC Initialization mode.
__STATIC_INLINE void LL_RTC_TAMPER_SetFilterCount(TAMP_TypeDef *TAMPx, uint32_t FilterCount)
Set RTC_TAMPx filter count TAMP_FLTCR TAMPFLT LL_RTC_TAMPER_SetFilterCount.