G32R430 Device Driver Layer v1.0.4
G32R4xx Device Driver Layer API Reference
g32r4xx_ddl_rcm.h
Go to the documentation of this file.
1
42
43/* Define to prevent recursive inclusion -------------------------------------*/
44#ifndef G32R4xx_DDL_RCM_H
45#define G32R4xx_DDL_RCM_H
46
47#ifdef __cplusplus
48extern "C" {
49#endif
50
51/* Includes ------------------------------------------------------------------*/
52#include "g32r4xx.h"
53
57
58#if defined(RCM)
59
63
64/* Private types -------------------------------------------------------------*/
65/* Private variables ---------------------------------------------------------*/
66/* Private constants ---------------------------------------------------------*/
67/* Private macros ------------------------------------------------------------*/
68#if defined(USE_FULL_DDL_DRIVER)
72extern const uint8_t AHBPrescTable[16];
73extern const uint8_t APBPrescTable[8];
77#endif /*USE_FULL_DDL_DRIVER*/
78/* Exported types ------------------------------------------------------------*/
79#if defined(USE_FULL_DDL_DRIVER)
83
87
91typedef struct
92{
94 uint32_t HCLK_Frequency;
95 uint32_t PCLK_Frequency;
97
101
105#endif /* USE_FULL_DDL_DRIVER */
106
107/* Exported constants --------------------------------------------------------*/
111
118#if !defined (HSE_VALUE)
119#define HSE_VALUE 8000000U
120#endif /* HSE_VALUE */
121
122#if !defined (HSI_VALUE)
123#define HSI_VALUE 8000000U
124#endif /* HSI_VALUE */
125
126#if !defined (LSE_VALUE)
127#define LSE_VALUE 32768U
128#endif /* LSE_VALUE */
129
130#if !defined (LSI_VALUE)
131#define LSI_VALUE 32000U
132#endif /* LSI_VALUE */
136
141#define DDL_RCM_INT_LSIRDYFLG RCM_CICR_LSIRDYF
142#define DDL_RCM_INT_LSERDYFLG RCM_CICR_LSERDYF
143#define DDL_RCM_INT_HSIRDYFLG RCM_CICR_HSIRDYF
144#define DDL_RCM_INT_HSERDYFLG RCM_CICR_HSERDYF
145#define DDL_RCM_INT_PLLRDYFLG RCM_CICR_PLLRDYF
146#define DDL_RCM_INT_HSECSSFLG RCM_CICR_HSECSSF
147#define DDL_RCM_INT_LSECSSFLG RCM_CICR_LSECSSF
148#define DDL_RCM_RSTCSR_OPRSTFLG RCM_RSTCSR_OPRSTF
149#define DDL_RCM_RSTCSR_PINRSTFLG RCM_RSTCSR_PINRSTF
150#define DDL_RCM_RSTCSR_PORRSTFLG RCM_RSTCSR_PORRSTF
151#define DDL_RCM_RSTCSR_SFTRSTFLG RCM_RSTCSR_SFTRSTF
152#define DDL_RCM_RSTCSR_IWDTRSTFLG RCM_RSTCSR_IWDTRSTF
153#define DDL_RCM_RSTCSR_WWDTRSTFLG RCM_RSTCSR_WWDTRSTF
157
162#define DDL_RCM_INT_LSIRDYEN RCM_CIER_LSIRDYIE
163#define DDL_RCM_INT_LSERDYEN RCM_CIER_LSERDYIE
164#define DDL_RCM_INT_HSIRDYEN RCM_CIER_HSIRDYIE
165#define DDL_RCM_INT_HSERDYEN RCM_CIER_HSERDYIE
166#define DDL_RCM_INT_PLLRDYEN RCM_CIER_PLLRDYIE
167#define DDL_RCM_INT_HSECSSEN RCM_CIER_HSECSSIE
168#define DDL_RCM_INT_LSECSSEN RCM_CIER_LSECSSIE
172
176#define DDL_RCM_SYS_CLKSOURCE_HSI (0x00000000U)
177#define DDL_RCM_SYS_CLKSOURCE_HSE (0x00000001U)
178#define DDL_RCM_SYS_CLKSOURCE_PLL (0x00000002U)
182
186#define DDL_RCM_AHB_DIV_1 (RCM_SCCR_HDIV_0)
187#define DDL_RCM_AHB_DIV_2 (RCM_SCCR_HDIV_3)
188#define DDL_RCM_AHB_DIV_4 (RCM_SCCR_HDIV_3 | RCM_SCCR_HDIV_0)
189#define DDL_RCM_AHB_DIV_8 (RCM_SCCR_HDIV_3 | RCM_SCCR_HDIV_1)
190#define DDL_RCM_AHB_DIV_16 (RCM_SCCR_HDIV_3 | RCM_SCCR_HDIV_1 | RCM_SCCR_HDIV_0)
191#define DDL_RCM_AHB_DIV_32 (RCM_SCCR_HDIV_3 | RCM_SCCR_HDIV_2)
192#define DDL_RCM_AHB_DIV_64 (RCM_SCCR_HDIV_3 | RCM_SCCR_HDIV_2 | RCM_SCCR_HDIV_0)
193#define DDL_RCM_AHB_DIV_128 (RCM_SCCR_HDIV_3 | RCM_SCCR_HDIV_2 | RCM_SCCR_HDIV_1)
194#define DDL_RCM_AHB_DIV_256 (RCM_SCCR_HDIV)
198
202#define DDL_RCM_APB_DIV_1 (0x00000000U)
203#define DDL_RCM_APB_DIV_2 (RCM_SCCR_PDIV_2)
204#define DDL_RCM_APB_DIV_4 (RCM_SCCR_PDIV_2 | RCM_SCCR_PDIV_0)
205#define DDL_RCM_APB_DIV_8 (RCM_SCCR_PDIV_2 | RCM_SCCR_PDIV_1)
206#define DDL_RCM_APB_DIV_16 (RCM_SCCR_PDIV)
210
214#define DDL_RCM_AHB_RESET_DMA RCM_AHBRST_DMARST
215#define DDL_RCM_AHB_RESET_GPIO RCM_AHBRST_GPIORST
216#define DDL_RCM_AHB_RESET_ADC1 RCM_AHBRST_ADC1RST
217#define DDL_RCM_AHB_RESET_ADC2 RCM_AHBRST_ADC2RST
218#define DDL_RCM_AHB_RESET_ADC3 RCM_AHBRST_ADC3RST
219#define DDL_RCM_AHB_RESET_FLASH RCM_AHBRST_FLASHRST
223
227#define DDL_RCM_APB_RESET_TMR1 RCM_APBRST_TMR1RST
228#define DDL_RCM_APB_RESET_TMR2 RCM_APBRST_TMR2RST
229#define DDL_RCM_APB_RESET_TMR3 RCM_APBRST_TMR3RST
230#define DDL_RCM_APB_RESET_TMR4 RCM_APBRST_TMR4RST
231#define DDL_RCM_APB_RESET_SPI RCM_APBRST_SPIRST
232#define DDL_RCM_APB_RESET_USART1 RCM_APBRST_USART1RST
233#define DDL_RCM_APB_RESET_USART2 RCM_APBRST_USART2RST
234#define DDL_RCM_APB_RESET_I2C RCM_APBRST_I2CRST
235#define DDL_RCM_APB_RESET_TS RCM_APBRST_TSRST
236#define DDL_RCM_APB_RESET_EINT RCM_APBRST_EINTRST
237#define DDL_RCM_APB_RESET_DAC1 RCM_APBRST_DAC1RST
238#define DDL_RCM_APB_RESET_DAC2 RCM_APBRST_DAC2RST
239#define DDL_RCM_APB_RESET_COMP RCM_APBRST_COMPRST
243
247#define DDL_RCM_AHB_PERIPHERAL_DMA RCM_AHBCG_DMACEN
248#define DDL_RCM_AHB_PERIPHERAL_GPIO RCM_AHBCG_GPIOCEN
249#define DDL_RCM_AHB_PERIPHERAL_ADC1 RCM_AHBCG_ADC1EN
250#define DDL_RCM_AHB_PERIPHERAL_ADC2 RCM_AHBCG_ADC2EN
251#define DDL_RCM_AHB_PERIPHERAL_ADC3 RCM_AHBCG_ADC3EN
252#define DDL_RCM_AHB_PERIPHERAL_FLASH RCM_AHBCG_FLASHCEN
253#define DDL_RCM_AHB_PERIPHERAL_ROM RCM_AHBCG_ROMCEN
257
261#define DDL_RCM_APB_PERIPHERAL_TMR1 RCM_APBCG_TMR1CEN
262#define DDL_RCM_APB_PERIPHERAL_TMR2 RCM_APBCG_TMR2CEN
263#define DDL_RCM_APB_PERIPHERAL_TMR3 RCM_APBCG_TMR3CEN
264#define DDL_RCM_APB_PERIPHERAL_TMR4 RCM_APBCG_TMR4CEN
265#define DDL_RCM_APB_PERIPHERAL_SPI RCM_APBCG_SPICEN
266#define DDL_RCM_APB_PERIPHERAL_USART1 RCM_APBCG_USART1CEN
267#define DDL_RCM_APB_PERIPHERAL_USART2 RCM_APBCG_USART2CEN
268#define DDL_RCM_APB_PERIPHERAL_I2C RCM_APBCG_I2CCEN
269#define DDL_RCM_APB_PERIPHERAL_WWDT RCM_APBCG_WWDTCEN
270#define DDL_RCM_APB_PERIPHERAL_TS RCM_APBCG_TSCEN
271#define DDL_RCM_APB_PERIPHERAL_EINT RCM_APBCG_EINTCEN
272#define DDL_RCM_APB_PERIPHERAL_DAC1 RCM_APBCG_DAC1CEN
273#define DDL_RCM_APB_PERIPHERAL_DAC2 RCM_APBCG_DAC2CEN
274#define DDL_RCM_APB_PERIPHERAL_COMP RCM_APBCG_COMPCEN
275#define DDL_RCM_APB_PERIPHERAL_BKP RCM_APBCG_BKPCEN
279
283#define DDL_RCM_MCOSOURCE_SYSCLK (0x00000000U)
284#define DDL_RCM_MCOSOURCE_HSI (RCM_SCCR_CLKOUTSEL_0)
285#define DDL_RCM_MCOSOURCE_HSE (RCM_SCCR_CLKOUTSEL_1)
286#define DDL_RCM_MCOSOURCE_PLL (RCM_SCCR_CLKOUTSEL_1 | RCM_SCCR_CLKOUTSEL_0)
287#define DDL_RCM_MCOSOURCE_LSI (RCM_SCCR_CLKOUTSEL_2)
288#define DDL_RCM_MCOSOURCE_LSE (RCM_SCCR_CLKOUTSEL_2 | RCM_SCCR_CLKOUTSEL_0)
292
296#define DDL_RCM_MCO_DIV_1 (0x00000000U)
297#define DDL_RCM_MCO_DIV_2 (RCM_SCCR_CLKOUTDIV_0)
298#define DDL_RCM_MCO_DIV_4 (RCM_SCCR_CLKOUTDIV_1)
299#define DDL_RCM_MCO_DIV_8 (RCM_SCCR_CLKOUTDIV_1 | RCM_SCCR_CLKOUTDIV_0)
300#define DDL_RCM_MCO_DIV_16 (RCM_SCCR_CLKOUTDIV_2)
304
308#define DDL_RCM_PLL_CLKSOURCE_NONE (0x00000000UL)
309#define DDL_RCM_PLL_CLKSOURCE_HSI (RCM_PLLCR_PLLSRC_1)
310#define DDL_RCM_PLL_CLKSOURCE_HSE (RCM_PLLCR_PLLSRC)
314
318#define DDL_RCM_PLL_DIV1 (0x00000000U)
319#define DDL_RCM_PLL_DIV2 (RCM_PLLCR_PLLP_1)
320#define DDL_RCM_PLL_DIV3 (RCM_PLLCR_PLLP_1 | RCM_PLLCR_PLLP_0)
321#define DDL_RCM_PLL_DIV4 (RCM_PLLCR_PLLP_2)
322#define DDL_RCM_PLL_DIV5 (RCM_PLLCR_PLLP_2 | RCM_PLLCR_PLLP_0)
323#define DDL_RCM_PLL_DIV6 (RCM_PLLCR_PLLP_2 | RCM_PLLCR_PLLP_1)
324#define DDL_RCM_PLL_DIV7 (RCM_PLLCR_PLLP_2 | RCM_PLLCR_PLLP_1 | RCM_PLLCR_PLLP_0)
325#define DDL_RCM_PLL_DIV8 (RCM_PLLCR_PLLP_3)
326#define DDL_RCM_PLL_DIV9 (RCM_PLLCR_PLLP_3 | RCM_PLLCR_PLLP_0)
327#define DDL_RCM_PLL_DIV10 (RCM_PLLCR_PLLP_3 | RCM_PLLCR_PLLP_1)
328#define DDL_RCM_PLL_DIV11 (RCM_PLLCR_PLLP_3 | RCM_PLLCR_PLLP_1| RCM_PLLCR_PLLP_0)
329#define DDL_RCM_PLL_DIV12 (RCM_PLLCR_PLLP_3 | RCM_PLLCR_PLLP_2 )
330#define DDL_RCM_PLL_DIV13 (RCM_PLLCR_PLLP_3 | RCM_PLLCR_PLLP_2 | RCM_PLLCR_PLLP_0)
331#define DDL_RCM_PLL_DIV14 (RCM_PLLCR_PLLP_3 | RCM_PLLCR_PLLP_2 | RCM_PLLCR_PLLP_1)
332#define DDL_RCM_PLL_DIV15 (RCM_PLLCR_PLLP)
336
337#if defined(USE_FULL_DDL_DRIVER)
341#define DDL_RCM_PERIPH_FREQUENCY_NO 0x00000000U
342#define DDL_RCM_PERIPH_FREQUENCY_NA 0xFFFFFFFFU
346#endif /* USE_FULL_DDL_DRIVER */
347
351#define DDL_RCM_LOWPOWER_STOP (0x00000000U)
352#define DDL_RCM_LOWPOWER_STANDBY RCM_PWRCR_LPM
353#define DDL_RCM_LOWPOWER_SRAM_NO_RESET (0x00000000U)
354#define DDL_RCM_LOWPOWER_SRAM_RESET RCM_PWRCR_RAM1RET
358
362#define DDL_RCM_ADC16ACLK_DIV_6 (0x00000000U)
363#define DDL_RCM_ADC16ACLK_DIV_12 (RCM_ADCCR_ADC16ADIV_1)
364#define DDL_RCM_ADC16ACLK_DIV_24 (RCM_ADCCR_ADC16ADIV)
368
372#define DDL_RCM_ADC12ACLK_DIV_4 (0x00000000U)
373#define DDL_RCM_ADC12ACLK_DIV_8 (RCM_ADCCR_ADC12ADIV_0)
374#define DDL_RCM_ADC12ACLK_DIV_16 (RCM_ADCCR_ADC12ADIV_1)
375#define DDL_RCM_ADC12ACLK_DIV_32 (RCM_ADCCR_ADC12ADIV)
379
383#define DDL_RCM_ADCACLK_PLL (0x00000000U)
384#define DDL_RCM_ADCACLK_SYSCLK (RCM_ADCCR_ADCACLKSEL)
388
392#define DDL_RCM_PLL_INTERCLK_OUTPUTSOURCE_NONE (0x00000000UL)
393#define DDL_RCM_PLL_INTERCLK_OUTPUTSOURCE_FBK (0x00000001UL)
394#define DDL_RCM_PLL_INTERCLK_OUTPUTSOURCE_FBK_DIV2 (0x00000002UL)
395#define DDL_RCM_PLL_INTERCLK_OUTPUTSOURCE_CLKREF (0x00000003UL)
399
403#define DDL_RCM_LSE_DRIVE_LOW (0x00000000UL)
404#define DDL_RCM_LSE_DRIVE_HIGH RCM_SYS_ANACR0_LSEDRV
408
412
413/* Exported macro ------------------------------------------------------------*/
417
421
428#define DDL_RCM_WriteReg(__REG__, __VALUE__) WRITE_REG(RCM->__REG__, (__VALUE__))
429
435#define DDL_RCM_ReadReg(__REG__) READ_REG(RCM->__REG__)
439
443
453#define __DDL_RCM_CALC_PLLCLK_FREQ(__INPUTFREQ__, __PLLP__, __PLLMUL__) (((__INPUTFREQ__) / (__PLLP__)) * (__PLLMUL__))
454
470#define __DDL_RCM_CALC_HCLK_FREQ(__SYSCLKFREQ__, __AHBPRESCALER__) ((__SYSCLKFREQ__) >> AHBPrescTable[((__AHBPRESCALER__) & RCM_SCCR_HDIV) >> RCM_SCCR_HDIV_Pos])
471
483#define __DDL_RCM_CALC_PCLK_FREQ(__HCLKFREQ__, __APBPRESCALER__) ((__HCLKFREQ__) >> APBPrescTable[(__APBPRESCALER__) >> RCM_SCCR_PDIV_Pos])
484
485#define __DDL_RCM_KEY 0x87E4
486
487#define IS_DDL_RCM_LSE_DRIVE(__VALUE__) (((__VALUE__) == DDL_RCM_LSE_DRIVE_LOW) \
488 || ((__VALUE__) == DDL_RCM_LSE_DRIVE_HIGH))
489
493
497
498/* Exported functions --------------------------------------------------------*/
502
506
512__STATIC_INLINE void DDL_RCM_Unlock(void)
513{
514 WRITE_REG(RCM->KEY, (0xffff & __DDL_RCM_KEY));
515}
516
522__STATIC_INLINE void DDL_RCM_Lock(void)
523{
524 SET_BIT(RCM->KEY, RCM_KEY_KEYST);
525}
526
530
534
539__STATIC_INLINE void DDL_RCM_EnableLSELeakageDetect(void)
540{
541 SET_BIT(RCM->SYS_ANACR0, RCM_SYS_ANACR0_LSELKDTEN);
542}
543
548__STATIC_INLINE void DDL_RCM_DisableLSELeakageDetect(void)
549{
550 CLEAR_BIT(RCM->SYS_ANACR0, RCM_SYS_ANACR0_LSELKDTEN);
551}
552
557__STATIC_INLINE uint32_t DDL_RCM_IsEnabledLSELeakageDetect(void)
558{
559 return ((READ_BIT(RCM->SYS_ANACR0, RCM_SYS_ANACR0_LSELKDTEN) == RCM_SYS_ANACR0_LSELKDTEN) ? 1UL : 0UL);
560}
561
569__STATIC_INLINE void DDL_RCM_SetLSEDrive(uint32_t Drive)
570{
571 MODIFY_REG(RCM->SYS_ANACR0, RCM_SYS_ANACR0_LSEDRV, Drive);
572}
573
580__STATIC_INLINE uint32_t DDL_RCM_GetLSEDrive(void)
581{
582 return (uint32_t)READ_BIT(RCM->SYS_ANACR0, RCM_SYS_ANACR0_LSEDRV);
583}
584
589__STATIC_INLINE uint32_t DDL_RCM_IsActiveFlag_LSELeakageDetect(void)
590{
591 return ((READ_BIT(RCM->SYS_ANACR0, RCM_SYS_ANACR0_LSELKDTSTA) == RCM_SYS_ANACR0_LSELKDTSTA) ? 1UL : 0UL);
592}
593
598__STATIC_INLINE void DDL_RCM_RequestLSEAutoTrim(void)
599{
600 SET_BIT(RCM->SYS_ANACR0, RCM_SYS_ANACR0_LSEAUTOTRIMREQ);
601}
602
608__STATIC_INLINE void DDL_RCM_SetLSELeakageTrim(uint32_t Trim)
609{
610 MODIFY_REG(RCM->SYS_ANACR0, RCM_SYS_ANACR0_LSE_LEAKTRIM, (Trim << RCM_SYS_ANACR0_LSE_LEAKTRIM_Pos));
611}
612
617__STATIC_INLINE uint32_t DDL_RCM_GetLSELeakageTrim(void)
618{
619 return (uint32_t)(READ_BIT(RCM->SYS_ANACR0, RCM_SYS_ANACR0_LSE_LEAKTRIM) >> RCM_SYS_ANACR0_LSE_LEAKTRIM_Pos);
620}
621
625
629
638__STATIC_INLINE void DDL_RCM_LSI_Enable(void)
639{
640 SET_BIT(PMU->CR, PMU_CR_LSION);
641}
642
650__STATIC_INLINE void DDL_RCM_LSI_Disable(void)
651{
652 CLEAR_BIT(PMU->CR, PMU_CR_LSION);
653}
654
662__STATIC_INLINE uint32_t DDL_RCM_LSI_IsReady(void)
663{
664 return (READ_BIT(PMU->CR, PMU_CR_LSIRDY) == (PMU_CR_LSIRDY));
665}
666
670
674
679__STATIC_INLINE void DDL_RCM_HSI_Enable(void)
680{
681 SET_BIT(RCM->RCCR, RCM_RCCR_HSION);
682}
683
688__STATIC_INLINE void DDL_RCM_HSI_Disable(void)
689{
690 CLEAR_BIT(RCM->RCCR, RCM_RCCR_HSION);
691}
692
697__STATIC_INLINE uint32_t DDL_RCM_HSI_IsReady(void)
698{
699 return (READ_BIT(RCM->RCCR, RCM_RCCR_HSIRDY) == (RCM_RCCR_HSIRDY));
700}
701
705
709
714__STATIC_INLINE void DDL_RCM_HSE_EnableCSS(void)
715{
716 SET_BIT(RCM->RCCR, RCM_RCCR_CSSON);
717}
718
723__STATIC_INLINE void DDL_RCM_HSE_DisableCSS(void)
724{
725 CLEAR_BIT(RCM->RCCR, RCM_RCCR_CSSON);
726}
727
731__STATIC_INLINE void DDL_RCM_HSE_Enable(void)
732{
733 SET_BIT(RCM->RCCR, RCM_RCCR_HSEON);
734}
735
740__STATIC_INLINE void DDL_RCM_HSE_Disable(void)
741{
742 CLEAR_BIT(RCM->RCCR, RCM_RCCR_HSEON);
743}
744
748__STATIC_INLINE uint32_t DDL_RCM_HSE_IsReady(void)
749{
750 return (READ_BIT(RCM->RCCR, RCM_RCCR_HSERDY) == (RCM_RCCR_HSERDY));
751}
752
756__STATIC_INLINE uint32_t DDL_RCM_HSE_IsByPass(void)
757{
758 return (READ_BIT(RCM->RCCR, RCM_RCCR_HSEBYPASS) == (RCM_RCCR_HSEBYPASS));
759}
760
764
772__STATIC_INLINE void DDL_RCM_LSE_EnableCSS(void)
773{
774 SET_BIT(RCM->RCCR, RCM_RCCR_LSECSSON);
775}
776
781__STATIC_INLINE void DDL_RCM_LSE_DisableCSS(void)
782{
783 CLEAR_BIT(RCM->RCCR, RCM_RCCR_LSECSSON);
784}
785
790__STATIC_INLINE void DDL_RCM_LSE_Enable(void)
791{
792 SET_BIT(RCM->RCCR, RCM_RCCR_LSEON);
793}
794
799__STATIC_INLINE void DDL_RCM_LSE_Disable(void)
800{
801 CLEAR_BIT(RCM->RCCR, RCM_RCCR_LSEON);
802}
803
808__STATIC_INLINE uint32_t DDL_RCM_LSE_IsReady(void)
809{
810 return (READ_BIT(RCM->RCCR, RCM_RCCR_LSERDY) == (RCM_RCCR_LSERDY));
811}
812
817__STATIC_INLINE uint32_t DDL_RCM_LSE_IsByPass(void)
818{
819 return (READ_BIT(RCM->RCCR, RCM_RCCR_LSEBYPASS) == (RCM_RCCR_LSEBYPASS));
820}
821
825
833__STATIC_INLINE void DDL_RCM_PLL_Enable(void)
834{
835 SET_BIT(RCM->RCCR, RCM_RCCR_PLLON);
836}
837
842__STATIC_INLINE void DDL_RCM_PLL_Disable(void)
843{
844 CLEAR_BIT(RCM->RCCR, RCM_RCCR_PLLON);
845}
846
851__STATIC_INLINE uint32_t DDL_RCM_PLL_IsReady(void)
852{
853 return (READ_BIT(RCM->RCCR, RCM_RCCR_PLLRDY) == (RCM_RCCR_PLLRDY));
854}
855
864__STATIC_INLINE void DDL_RCM_PLL_SetClkSource(uint32_t Source)
865{
866 MODIFY_REG(RCM->PLLCR, RCM_PLLCR_PLLSRC, Source);
867}
868
876__STATIC_INLINE uint32_t DDL_RCM_PLL_GetClkSource(void)
877{
878 return (uint32_t)(READ_BIT(RCM->PLLCR, RCM_PLLCR_PLLSRC));
879}
880
901__STATIC_INLINE void DDL_RCM_PLL_SetPrescaler(uint32_t Prescaler)
902{
903 MODIFY_REG(RCM->PLLCR, RCM_PLLCR_PLLP, Prescaler);
904}
905
925__STATIC_INLINE uint32_t DDL_RCM_PLL_GetPrescaler(void)
926{
927 return (uint32_t)(READ_BIT(RCM->PLLCR, RCM_PLLCR_PLLP));
928}
929
935__STATIC_INLINE void DDL_RCM_PLL_SetMultiplier(uint32_t Mul)
936{
937 MODIFY_REG(RCM->PLLCR, RCM_PLLCR_PLLMUL, (Mul << RCM_PLLCR_PLLMUL_Pos));
938}
939
944__STATIC_INLINE uint32_t DDL_RCM_PLL_GetMultiplier(void)
945{
946 return (uint32_t)(READ_BIT(RCM->PLLCR, RCM_PLLCR_PLLMUL) >> RCM_PLLCR_PLLMUL_Pos);
947}
948
952
956
962__STATIC_INLINE void DDL_RCM_EnableBackupDomainReset(void)
963{
964 SET_BIT(PMU->CR, (uint32_t)PMU_CR_BDRST);
965}
966
972__STATIC_INLINE void DDL_RCM_DisableBackupDomainReset(void)
973{
974 CLEAR_BIT(PMU->CR, (uint32_t)PMU_CR_BDRST);
975}
976
980
984
991{
992 SET_BIT(PMU->CR, (uint32_t)PMU_CR_NRSTOUTDIS);
993}
994
1001{
1002 CLEAR_BIT(PMU->CR, (uint32_t)PMU_CR_NRSTOUTDIS);
1003}
1004
1008
1020__STATIC_INLINE void DDL_RCM_SetSysClkSource(uint32_t Source)
1021{
1022 MODIFY_REG(RCM->SCCR, RCM_SCCR_SW, (Source << RCM_SCCR_SW_Pos));
1023}
1024
1032__STATIC_INLINE uint32_t DDL_RCM_GetSysClkSource(void)
1033{
1034 return (uint32_t)(READ_BIT(RCM->MCCR, RCM_MCCR_SWST) >> RCM_MCCR_SWST_Pos);
1035}
1036
1041__STATIC_INLINE void DDL_RCM_EnableSysClkSwitch(void)
1042{
1043 SET_BIT(RCM->MCCR, RCM_MCCR_CSEN);
1044}
1045
1050__STATIC_INLINE void DDL_RCM_DisableSysClkSwitch(void)
1051{
1052 CLEAR_BIT(RCM->MCCR, RCM_MCCR_CSEN);
1053}
1054
1059__STATIC_INLINE uint32_t DDL_RCM_IsActiveFlag_SWDONE(void)
1060{
1061 return (uint32_t)(READ_BIT(RCM->MCCR, RCM_MCCR_SWDONE) == RCM_MCCR_SWDONE ? 1UL : 0UL);
1062}
1063
1068__STATIC_INLINE uint32_t DDL_RCM_IsActiveFlag_SWERR(void)
1069{
1070 return (uint32_t)(READ_BIT(RCM->MCCR, RCM_MCCR_SWERR) == RCM_MCCR_SWERR ? 1UL : 0UL);
1071}
1072
1075
1093__STATIC_INLINE void DDL_RCM_SetAHBPrescaler(uint32_t Prescaler)
1094{
1095 MODIFY_REG(RCM->SCCR, RCM_SCCR_HDIV, Prescaler);
1096}
1097
1111__STATIC_INLINE uint32_t DDL_RCM_GetAHBPrescaler(void)
1112{
1113 return (uint32_t)(READ_BIT(RCM->SCCR, RCM_SCCR_HDIV));
1114}
1115
1126__STATIC_INLINE void DDL_RCM_SetAPBPrescaler(uint32_t Prescaler)
1127{
1128 MODIFY_REG(RCM->SCCR, RCM_SCCR_PDIV, Prescaler);
1129}
1130
1140__STATIC_INLINE uint32_t DDL_RCM_GetAPBPrescaler(void)
1141{
1142 return (uint32_t)(READ_BIT(RCM->SCCR, RCM_SCCR_PDIV));
1143}
1144
1148
1156__STATIC_INLINE void DDL_RCM_EnableMCO(void)
1157{
1158 SET_BIT(RCM->SCCR, RCM_SCCR_CLKOUTEN);
1159}
1160
1165__STATIC_INLINE void DDL_RCM_DisableMCO(void)
1166{
1167 CLEAR_BIT(RCM->SCCR, RCM_SCCR_CLKOUTEN);
1168}
1169
1187__STATIC_INLINE void DDL_RCM_ConfigMCO(uint32_t Source, uint32_t Prescaler)
1188{
1189 MODIFY_REG(RCM->SCCR, (RCM_SCCR_CLKOUTSEL | RCM_SCCR_CLKOUTDIV), (Source | Prescaler));
1190}
1191
1194
1209__STATIC_INLINE void DDL_RCM_EnableAHBReset(uint32_t Peripheral)
1210{
1211 CLEAR_BIT(RCM->AHBRST, Peripheral);
1212}
1213
1224__STATIC_INLINE void DDL_RCM_DisableAHBReset(uint32_t Peripheral)
1225{
1226 SET_BIT(RCM->AHBRST, Peripheral);
1227}
1228
1247__STATIC_INLINE void DDL_RCM_EnableAPBReset(uint32_t Peripheral)
1248{
1249 CLEAR_BIT(RCM->APBRST, Peripheral);
1250}
1251
1270__STATIC_INLINE void DDL_RCM_DisableAPBReset(uint32_t Peripheral)
1271{
1272 SET_BIT(RCM->APBRST, Peripheral);
1273}
1274
1277
1293__STATIC_INLINE void DDL_RCM_EnableAHBPeripheral(uint32_t Peripheral)
1294{
1295 SET_BIT(RCM->AHBCG, Peripheral);
1296}
1297
1310__STATIC_INLINE void DDL_RCM_DisableAHBPeripheral(uint32_t Peripheral)
1311{
1312 CLEAR_BIT(RCM->AHBCG, Peripheral);
1313}
1314
1335__STATIC_INLINE void DDL_RCM_EnableAPBPeripheral(uint32_t Peripheral)
1336{
1337 SET_BIT(RCM->APBCG, Peripheral);
1338}
1339
1360__STATIC_INLINE void DDL_RCM_DisableAPBPeripheral(uint32_t Peripheral)
1361{
1362 CLEAR_BIT(RCM->APBCG, Peripheral);
1363}
1364
1367
1378__STATIC_INLINE void DDL_RCM_SetLowPowerMode(uint32_t Mode)
1379{
1380 MODIFY_REG(RCM->PWRCR, RCM_PWRCR_LPM, Mode);
1381}
1382
1390__STATIC_INLINE void DDL_RCM_SetSRAMLowPowerMode(uint32_t WorkMode)
1391{
1392 MODIFY_REG(RCM->PWRCR, RCM_PWRCR_RAM1RET, WorkMode);
1393}
1394
1399__STATIC_INLINE void DDL_RCM_EnableBackupWriteProtect(void)
1400{
1401 CLEAR_BIT(RCM->PWRCR, RCM_PWRCR_BKPWP);
1402}
1403
1408__STATIC_INLINE void DDL_RCM_DisableBackupWriteProtect(void)
1409{
1410 SET_BIT(RCM->PWRCR, RCM_PWRCR_BKPWP);
1411}
1412
1416
1420
1429__STATIC_INLINE void DDL_RCM_ADC_SetAdc16AnalogClkDivision(uint32_t Division)
1430{
1431 MODIFY_REG(RCM->ADCCR, RCM_ADCCR_ADC16ADIV, Division);
1432}
1433
1442__STATIC_INLINE uint32_t DDL_RCM_ADC_GetAdc16AnalogClkDivision(void)
1443{
1444 return (uint32_t)(READ_BIT(RCM->ADCCR, RCM_ADCCR_ADC16ADIV));
1445}
1446
1452__STATIC_INLINE uint32_t DDL_RCM_ADC_IsAdc16AnalogClkRDY(void)
1453{
1454 return (uint32_t)(READ_BIT(RCM->ADCCR, RCM_ADCCR_ADC16ACLKRDY) == RCM_ADCCR_ADC16ACLKRDY);
1455}
1456
1466__STATIC_INLINE void DDL_RCM_ADC_SetAdc12AnalogClkDivision(uint32_t Division)
1467{
1468 MODIFY_REG(RCM->ADCCR, RCM_ADCCR_ADC12ADIV, Division);
1469}
1470
1480__STATIC_INLINE uint32_t DDL_RCM_ADC_GetAdc12AnalogClkDivision(void)
1481{
1482 return (uint32_t)(READ_BIT(RCM->ADCCR, RCM_ADCCR_ADC12ADIV));
1483}
1484
1490__STATIC_INLINE uint32_t DDL_RCM_ADC_IsAdc12AnalogClkRDY(void)
1491{
1492 return (uint32_t)(READ_BIT(RCM->ADCCR, RCM_ADCCR_ADC12ACLKRDY) == RCM_ADCCR_ADC12ACLKRDY);
1493}
1494
1502__STATIC_INLINE void DDL_RCM_ADC_SetAdcAnalogClkSource(uint32_t Source)
1503{
1504 MODIFY_REG(RCM->ADCCR, RCM_ADCCR_ADCACLKSEL, Source);
1505}
1506
1514__STATIC_INLINE uint32_t DDL_RCM_ADC_GetAdcAnalogClkSource(void)
1515{
1516 return (uint32_t)(READ_BIT(RCM->ADCCR, RCM_ADCCR_ADCACLKSEL));
1517}
1518
1522
1530__STATIC_INLINE uint32_t DDL_RCM_IsActiveFlag_LSIRDY(void)
1531{
1532 return (READ_BIT(RCM->CICR, DDL_RCM_INT_LSIRDYFLG) == (DDL_RCM_INT_LSIRDYFLG));
1533}
1534
1539__STATIC_INLINE void DDL_RCM_ClearFlag_LSIRDY(void)
1540{
1541 WRITE_REG(RCM->CICR, DDL_RCM_INT_LSIRDYFLG);
1542}
1543
1548__STATIC_INLINE uint32_t DDL_RCM_IsActiveFlag_LSERDY(void)
1549{
1550 return (READ_BIT(RCM->CICR, DDL_RCM_INT_LSERDYFLG) == (DDL_RCM_INT_LSERDYFLG));
1551}
1552
1557__STATIC_INLINE void DDL_RCM_ClearFlag_LSERDY(void)
1558{
1559 WRITE_REG(RCM->CICR, DDL_RCM_INT_LSERDYFLG);
1560}
1561
1566__STATIC_INLINE uint32_t DDL_RCM_IsActiveFlag_HSIRDY(void)
1567{
1568 return (READ_BIT(RCM->CICR, DDL_RCM_INT_HSIRDYFLG) == (DDL_RCM_INT_HSIRDYFLG));
1569}
1570
1575__STATIC_INLINE void DDL_RCM_ClearFlag_HSIRDY(void)
1576{
1577 WRITE_REG(RCM->CICR, DDL_RCM_INT_HSIRDYFLG);
1578}
1579
1584__STATIC_INLINE uint32_t DDL_RCM_IsActiveFlag_HSERDY(void)
1585{
1586 return (READ_BIT(RCM->CICR, DDL_RCM_INT_HSERDYFLG) == (DDL_RCM_INT_HSERDYFLG));
1587}
1588
1593__STATIC_INLINE void DDL_RCM_ClearFlag_HSERDY(void)
1594{
1595 WRITE_REG(RCM->CICR, DDL_RCM_INT_HSERDYFLG);
1596}
1597
1602__STATIC_INLINE uint32_t DDL_RCM_IsActiveFlag_PLLRDY(void)
1603{
1604 return (READ_BIT(RCM->CICR, DDL_RCM_INT_PLLRDYFLG) == (DDL_RCM_INT_PLLRDYFLG));
1605}
1606
1611__STATIC_INLINE void DDL_RCM_ClearFlag_PLLRDY(void)
1612{
1613 WRITE_REG(RCM->CICR, DDL_RCM_INT_PLLRDYFLG);
1614}
1615
1620__STATIC_INLINE uint32_t DDL_RCM_IsActiveFlag_HSECSS(void)
1621{
1622 return (READ_BIT(RCM->CICR, DDL_RCM_INT_HSECSSFLG) == (DDL_RCM_INT_HSECSSFLG));
1623}
1624
1629__STATIC_INLINE void DDL_RCM_ClearFlag_HSECSS(void)
1630{
1631 WRITE_REG(RCM->CICR, DDL_RCM_INT_HSECSSFLG);
1632}
1633
1638__STATIC_INLINE uint32_t DDL_RCM_IsActiveFlag_LSECSS(void)
1639{
1640 return (READ_BIT(RCM->CICR, DDL_RCM_INT_LSECSSFLG) == (DDL_RCM_INT_LSECSSFLG));
1641}
1642
1647__STATIC_INLINE void DDL_RCM_ClearFlag_LSECSS(void)
1648{
1649 WRITE_REG(RCM->CICR, DDL_RCM_INT_LSECSSFLG);
1650}
1651
1656__STATIC_INLINE uint32_t DDL_RCM_IsActiveFlag_OPRST(void)
1657{
1658 return (READ_BIT(RCM->RSTCSR, DDL_RCM_RSTCSR_OPRSTFLG) == (DDL_RCM_RSTCSR_OPRSTFLG));
1659}
1660
1668__STATIC_INLINE void DDL_RCM_ClearFlag_OPRST(void)
1669{
1670 WRITE_REG(RCM->RSTCSR, DDL_RCM_RSTCSR_OPRSTFLG);
1671}
1672
1677__STATIC_INLINE uint32_t DDL_RCM_IsActiveFlag_PINRST(void)
1678{
1679 return (READ_BIT(RCM->RSTCSR, DDL_RCM_RSTCSR_PINRSTFLG) == (DDL_RCM_RSTCSR_PINRSTFLG));
1680}
1681
1689__STATIC_INLINE void DDL_RCM_ClearFlag_PINRST(void)
1690{
1691 WRITE_REG(RCM->RSTCSR, DDL_RCM_RSTCSR_PINRSTFLG);
1692}
1693
1698__STATIC_INLINE uint32_t DDL_RCM_IsActiveFlag_PORRST(void)
1699{
1700 return (READ_BIT(RCM->RSTCSR, DDL_RCM_RSTCSR_PORRSTFLG) == (DDL_RCM_RSTCSR_PORRSTFLG));
1701}
1702
1710__STATIC_INLINE void DDL_RCM_ClearFlag_PORRST(void)
1711{
1712 WRITE_REG(RCM->RSTCSR, DDL_RCM_RSTCSR_PORRSTFLG);
1713}
1714
1722__STATIC_INLINE uint32_t DDL_RCM_IsActiveFlag_SFTRST(void)
1723{
1724 return (READ_BIT(RCM->RSTCSR, DDL_RCM_RSTCSR_SFTRSTFLG) == (DDL_RCM_RSTCSR_SFTRSTFLG));
1725}
1726
1734__STATIC_INLINE void DDL_RCM_ClearFlag_SFTRST(void)
1735{
1736 WRITE_REG(RCM->RSTCSR, DDL_RCM_RSTCSR_SFTRSTFLG);
1737}
1738
1743__STATIC_INLINE uint32_t DDL_RCM_IsActiveFlag_IWDTRST(void)
1744{
1745 return (READ_BIT(RCM->RSTCSR, DDL_RCM_RSTCSR_IWDTRSTFLG) == (DDL_RCM_RSTCSR_IWDTRSTFLG));
1746}
1747
1755__STATIC_INLINE void DDL_RCM_ClearFlag_IWDTRST(void)
1756{
1757 WRITE_REG(RCM->RSTCSR, DDL_RCM_RSTCSR_IWDTRSTFLG);
1758}
1759
1764__STATIC_INLINE uint32_t DDL_RCM_IsActiveFlag_WWDTRST(void)
1765{
1766 return (READ_BIT(RCM->RSTCSR, DDL_RCM_RSTCSR_WWDTRSTFLG) == (DDL_RCM_RSTCSR_WWDTRSTFLG));
1767}
1768
1776__STATIC_INLINE void DDL_RCM_ClearFlag_WWDTRST(void)
1777{
1778 WRITE_REG(RCM->RSTCSR, DDL_RCM_RSTCSR_WWDTRSTFLG);
1779}
1780
1784
1792__STATIC_INLINE void DDL_RCM_EnableIT_LSIRDY(void)
1793{
1794 SET_BIT(RCM->CIER, DDL_RCM_INT_LSIRDYEN);
1795}
1796
1801__STATIC_INLINE void DDL_RCM_DisableIT_LSIRDY(void)
1802{
1803 CLEAR_BIT(RCM->CIER, DDL_RCM_INT_LSIRDYEN);
1804}
1805
1810__STATIC_INLINE uint32_t DDL_RCM_IsEnabledIT_LSIRDY(void)
1811{
1812 return (READ_BIT(RCM->CIER, DDL_RCM_INT_LSIRDYEN) == (DDL_RCM_INT_LSIRDYEN));
1813}
1814
1819__STATIC_INLINE void DDL_RCM_EnableIT_LSERDY(void)
1820{
1821 SET_BIT(RCM->CIER, DDL_RCM_INT_LSERDYEN);
1822}
1823
1828__STATIC_INLINE void DDL_RCM_DisableIT_LSERDY(void)
1829{
1830 CLEAR_BIT(RCM->CIER, DDL_RCM_INT_LSERDYEN);
1831}
1832
1837__STATIC_INLINE uint32_t DDL_RCM_IsEnabledIT_LSERDY(void)
1838{
1839 return (READ_BIT(RCM->CIER, DDL_RCM_INT_LSERDYEN) == (DDL_RCM_INT_LSERDYEN));
1840}
1841
1846__STATIC_INLINE void DDL_RCM_EnableIT_HSIRDY(void)
1847{
1848 SET_BIT(RCM->CIER, DDL_RCM_INT_HSIRDYEN);
1849}
1850
1855__STATIC_INLINE void DDL_RCM_DisableIT_HSIRDY(void)
1856{
1857 CLEAR_BIT(RCM->CIER, DDL_RCM_INT_HSIRDYEN);
1858}
1859
1864__STATIC_INLINE uint32_t DDL_RCM_IsEnabledIT_HSIRDY(void)
1865{
1866 return (READ_BIT(RCM->CIER, DDL_RCM_INT_HSIRDYEN) == (DDL_RCM_INT_HSIRDYEN));
1867}
1868
1873__STATIC_INLINE void DDL_RCM_EnableIT_HSERDY(void)
1874{
1875 SET_BIT(RCM->CIER, DDL_RCM_INT_HSERDYEN);
1876}
1877
1882__STATIC_INLINE void DDL_RCM_DisableIT_HSERDY(void)
1883{
1884 CLEAR_BIT(RCM->CIER, DDL_RCM_INT_HSERDYEN);
1885}
1886
1891__STATIC_INLINE uint32_t DDL_RCM_IsEnabledIT_HSERDY(void)
1892{
1893 return (READ_BIT(RCM->CIER, DDL_RCM_INT_HSERDYEN) == (DDL_RCM_INT_HSERDYEN));
1894}
1895
1900__STATIC_INLINE void DDL_RCM_EnableIT_PLLRDY(void)
1901{
1902 SET_BIT(RCM->CIER, DDL_RCM_INT_PLLRDYEN);
1903}
1904
1909__STATIC_INLINE void DDL_RCM_DisableIT_PLLRDY(void)
1910{
1911 CLEAR_BIT(RCM->CIER, DDL_RCM_INT_PLLRDYEN);
1912}
1913
1918__STATIC_INLINE uint32_t DDL_RCM_IsEnabledIT_PLLRDY(void)
1919{
1920 return (READ_BIT(RCM->CIER, DDL_RCM_INT_PLLRDYEN) == (DDL_RCM_INT_PLLRDYEN));
1921}
1922
1927__STATIC_INLINE void DDL_RCM_EnableIT_HSECSS(void)
1928{
1929 SET_BIT(RCM->CIER, DDL_RCM_INT_HSECSSEN);
1930}
1931
1936__STATIC_INLINE void DDL_RCM_DisableIT_HSECSS(void)
1937{
1938 CLEAR_BIT(RCM->CIER, DDL_RCM_INT_HSECSSEN);
1939}
1940
1945__STATIC_INLINE uint32_t DDL_RCM_IsEnabledIT_HSECSS(void)
1946{
1947 return (READ_BIT(RCM->CIER, DDL_RCM_INT_HSECSSEN) == (DDL_RCM_INT_HSECSSEN));
1948}
1949
1954__STATIC_INLINE void DDL_RCM_EnableIT_LSECSS(void)
1955{
1956 SET_BIT(RCM->CIER, DDL_RCM_INT_LSECSSEN);
1957}
1958
1963__STATIC_INLINE void DDL_RCM_DisableIT_LSECSS(void)
1964{
1965 CLEAR_BIT(RCM->CIER, DDL_RCM_INT_LSECSSEN);
1966}
1967
1972__STATIC_INLINE uint32_t DDL_RCM_IsEnabledIT_LSECSS(void)
1973{
1974 return (READ_BIT(RCM->CIER, DDL_RCM_INT_LSECSSEN) == (DDL_RCM_INT_LSECSSEN));
1975}
1976
1979
1980#if defined(USE_FULL_DDL_DRIVER)
1984ErrorStatus DDL_RCM_DeInit(void);
1988
1996
1997#endif /* USE_FULL_DDL_DRIVER */
1998
2002
2006
2007#endif /* defined(RCM) */
2008
2012
2013#ifdef __cplusplus
2014}
2015#endif
2016
2017#endif /* G32R4xx_DDL_RCM_H */
2018
#define DDL_RCM_RSTCSR_OPRSTFLG
#define DDL_RCM_INT_HSERDYFLG
#define DDL_RCM_RSTCSR_PORRSTFLG
#define DDL_RCM_INT_LSECSSFLG
#define DDL_RCM_RSTCSR_PINRSTFLG
#define DDL_RCM_RSTCSR_SFTRSTFLG
#define DDL_RCM_INT_HSIRDYFLG
#define DDL_RCM_RSTCSR_IWDTRSTFLG
#define DDL_RCM_INT_LSIRDYFLG
#define DDL_RCM_INT_PLLRDYFLG
#define DDL_RCM_INT_HSECSSFLG
#define DDL_RCM_INT_LSERDYFLG
#define DDL_RCM_RSTCSR_WWDTRSTFLG
#define DDL_RCM_INT_HSERDYEN
#define DDL_RCM_INT_LSIRDYEN
#define DDL_RCM_INT_LSECSSEN
#define DDL_RCM_INT_PLLRDYEN
#define DDL_RCM_INT_HSECSSEN
#define DDL_RCM_INT_HSIRDYEN
#define DDL_RCM_INT_LSERDYEN
__STATIC_INLINE void DDL_RCM_ADC_SetAdcAnalogClkSource(uint32_t Source)
Set Adc analog clock source.
__STATIC_INLINE uint32_t DDL_RCM_ADC_GetAdcAnalogClkSource(void)
Get Adc analog clock source.
__STATIC_INLINE uint32_t DDL_RCM_ADC_GetAdc12AnalogClkDivision(void)
Get Adc12 analog clock division.
__STATIC_INLINE uint32_t DDL_RCM_ADC_IsAdc12AnalogClkRDY(void)
Check whether Adc12 analog clock is ready.
__STATIC_INLINE uint32_t DDL_RCM_ADC_IsAdc16AnalogClkRDY(void)
Check whether Adc16 analog clock is ready.
__STATIC_INLINE uint32_t DDL_RCM_ADC_GetAdc16AnalogClkDivision(void)
Get Adc16 analog clock division.
__STATIC_INLINE void DDL_RCM_ADC_SetAdc12AnalogClkDivision(uint32_t Division)
Set Adc12 analog clock division.
__STATIC_INLINE void DDL_RCM_ADC_SetAdc16AnalogClkDivision(uint32_t Division)
Set Adc16 analog clock division.
__STATIC_INLINE void DDL_RCM_EnableBackupDomainReset(void)
Enable backup domain reset.
__STATIC_INLINE void DDL_RCM_DisableBackupDomainReset(void)
Disable backup domain reset.
__STATIC_INLINE uint32_t DDL_RCM_IsActiveFlag_OPRST(void)
Check if opload reset flag is set or not.
__STATIC_INLINE uint32_t DDL_RCM_IsActiveFlag_WWDTRST(void)
Check if Window Watchdog reset flag is set or not.
__STATIC_INLINE uint32_t DDL_RCM_IsActiveFlag_LSERDY(void)
Check if LSE ready interrupt occurred or not.
__STATIC_INLINE void DDL_RCM_ClearFlag_LSERDY(void)
Clear LSE ready interrupt flag.
__STATIC_INLINE uint32_t DDL_RCM_IsActiveFlag_SFTRST(void)
Check if Software reset flag is set or not.
__STATIC_INLINE void DDL_RCM_ClearFlag_PORRST(void)
Clear Borrst reset flag.
__STATIC_INLINE void DDL_RCM_ClearFlag_OPRST(void)
Clear opload reset flag.
__STATIC_INLINE void DDL_RCM_ClearFlag_HSIRDY(void)
Clear HSI ready interrupt flag.
__STATIC_INLINE void DDL_RCM_ClearFlag_LSIRDY(void)
Clear LSI ready interrupt flag.
__STATIC_INLINE void DDL_RCM_ClearFlag_PINRST(void)
Clear pin reset flag.
__STATIC_INLINE void DDL_RCM_ClearFlag_HSERDY(void)
Clear HSE ready interrupt flag.
__STATIC_INLINE uint32_t DDL_RCM_IsActiveFlag_IWDTRST(void)
Check if Independent Watchdog reset flag is set or not.
__STATIC_INLINE void DDL_RCM_ClearFlag_SFTRST(void)
Clear Software reset flag.
__STATIC_INLINE void DDL_RCM_ClearFlag_PLLRDY(void)
Clear PLL ready interrupt flag.
__STATIC_INLINE uint32_t DDL_RCM_IsActiveFlag_PORRST(void)
Check if Borrst reset flag is set or not.
__STATIC_INLINE uint32_t DDL_RCM_IsActiveFlag_LSIRDY(void)
Check if LSI ready interrupt occurred or not.
__STATIC_INLINE void DDL_RCM_ClearFlag_WWDTRST(void)
Clear Window Watchdog reset flag.
__STATIC_INLINE uint32_t DDL_RCM_IsActiveFlag_HSIRDY(void)
Check if HSI ready interrupt occurred or not.
__STATIC_INLINE void DDL_RCM_ClearFlag_HSECSS(void)
Clear HSE clock security system interrupt flag.
__STATIC_INLINE void DDL_RCM_ClearFlag_LSECSS(void)
Clear LSE clock security system interrupt flag.
__STATIC_INLINE uint32_t DDL_RCM_IsActiveFlag_HSERDY(void)
Check if HSE ready interrupt occurred or not.
__STATIC_INLINE void DDL_RCM_ClearFlag_IWDTRST(void)
Clear if Independent Watchdog reset flag.
__STATIC_INLINE uint32_t DDL_RCM_IsActiveFlag_HSECSS(void)
Check if HSE clock security system interrupt occurred or not.
__STATIC_INLINE uint32_t DDL_RCM_IsActiveFlag_PINRST(void)
Check if pin reset flag is set or not.
__STATIC_INLINE uint32_t DDL_RCM_IsActiveFlag_LSECSS(void)
Check if LSE clock security system interrupt occurred or not.
__STATIC_INLINE uint32_t DDL_RCM_IsActiveFlag_PLLRDY(void)
Check if PLL ready interrupt occurred or not.
void DDL_RCM_GetSystemClocksFreq(DDL_RCM_ClocksTypeDef *RCM_Clocks)
Return the frequencies of different on chip clocks; System, AHB, APB buses clocks.
__STATIC_INLINE void DDL_RCM_HSE_DisableCSS(void)
Disable the Clock Security System.
__STATIC_INLINE void DDL_RCM_HSE_Disable(void)
Disable HSE crystal oscillator (HSE ON).
__STATIC_INLINE uint32_t DDL_RCM_HSE_IsByPass(void)
Check if HSE oscillator byPass.
__STATIC_INLINE void DDL_RCM_HSE_EnableCSS(void)
Enable the Clock Security System.
__STATIC_INLINE void DDL_RCM_HSE_Enable(void)
Enable HSE crystal oscillator (HSE ON).
__STATIC_INLINE uint32_t DDL_RCM_HSE_IsReady(void)
Check if HSE oscillator ready.
__STATIC_INLINE void DDL_RCM_HSI_Disable(void)
Disable HSI oscillator.
__STATIC_INLINE void DDL_RCM_HSI_Enable(void)
Enable HSI oscillator.
__STATIC_INLINE uint32_t DDL_RCM_HSI_IsReady(void)
Check if HSI clock is ready.
__STATIC_INLINE void DDL_RCM_DisableIT_LSIRDY(void)
Disable LSI ready interrupt.
__STATIC_INLINE void DDL_RCM_DisableIT_LSERDY(void)
Disable LSE ready interrupt.
__STATIC_INLINE void DDL_RCM_EnableIT_LSECSS(void)
Enable LSE clock security system interrupt.
__STATIC_INLINE void DDL_RCM_EnableIT_HSIRDY(void)
Enable HSI ready interrupt.
__STATIC_INLINE uint32_t DDL_RCM_IsEnabledIT_PLLRDY(void)
Checks if PLL ready interrupt source is enabled or disabled.
__STATIC_INLINE void DDL_RCM_EnableIT_HSECSS(void)
Enable HSE clock security system interrupt.
__STATIC_INLINE void DDL_RCM_DisableIT_HSIRDY(void)
Disable HSI ready interrupt.
__STATIC_INLINE void DDL_RCM_EnableIT_LSERDY(void)
Enable LSE ready interrupt.
__STATIC_INLINE void DDL_RCM_DisableIT_LSECSS(void)
Disable LSE clock security system interrupt.
__STATIC_INLINE uint32_t DDL_RCM_IsEnabledIT_LSERDY(void)
Checks if LSE ready interrupt source is enabled or disabled.
__STATIC_INLINE void DDL_RCM_EnableIT_LSIRDY(void)
Enable LSI ready interrupt.
__STATIC_INLINE uint32_t DDL_RCM_IsEnabledIT_HSECSS(void)
Checks if HSE clock security system interrupt source is enabled or disabled.
__STATIC_INLINE uint32_t DDL_RCM_IsEnabledIT_HSERDY(void)
Checks if HSE ready interrupt source is enabled or disabled.
__STATIC_INLINE void DDL_RCM_DisableIT_HSECSS(void)
Disable HSE clock security system interrupt.
__STATIC_INLINE uint32_t DDL_RCM_IsEnabledIT_HSIRDY(void)
Checks if HSI ready interrupt source is enabled or disabled.
__STATIC_INLINE uint32_t DDL_RCM_IsEnabledIT_LSECSS(void)
Checks if LSE clock security system interrupt source is enabled or disabled.
__STATIC_INLINE void DDL_RCM_DisableIT_HSERDY(void)
Disable HSE ready interrupt.
__STATIC_INLINE uint32_t DDL_RCM_IsEnabledIT_LSIRDY(void)
Checks if LSI ready interrupt source is enabled or disabled.
__STATIC_INLINE void DDL_RCM_EnableIT_HSERDY(void)
Enable HSE ready interrupt.
__STATIC_INLINE void DDL_RCM_DisableIT_PLLRDY(void)
Disable PLL ready interrupt.
__STATIC_INLINE void DDL_RCM_EnableIT_PLLRDY(void)
Enable PLL ready interrupt.
ErrorStatus DDL_RCM_DeInit(void)
Reset the RCM clock configuration to the default reset state.
__STATIC_INLINE void DDL_RCM_LSE_Enable(void)
Enable Low Speed External (LSE) crystal.
__STATIC_INLINE uint32_t DDL_RCM_LSE_IsReady(void)
Check if LSE oscillator ready.
__STATIC_INLINE void DDL_RCM_LSE_EnableCSS(void)
Enable the Clock Security System.
__STATIC_INLINE void DDL_RCM_LSE_DisableCSS(void)
Disable the Clock Security System.
__STATIC_INLINE uint32_t DDL_RCM_LSE_IsByPass(void)
Check if LSE oscillator byPass.
__STATIC_INLINE void DDL_RCM_LSE_Disable(void)
Disable Low Speed External (LSE) crystal.
__STATIC_INLINE uint32_t DDL_RCM_LSI_IsReady(void)
Check if LSI clock is ready.
__STATIC_INLINE void DDL_RCM_LSI_Enable(void)
Enable LSI oscillator.
__STATIC_INLINE void DDL_RCM_LSI_Disable(void)
Disable LSI oscillator.
__STATIC_INLINE void DDL_RCM_Lock(void)
Lock the RCM register.
__STATIC_INLINE void DDL_RCM_Unlock(void)
Unlock the RCM register.
__STATIC_INLINE void DDL_RCM_SetLowPowerMode(uint32_t Mode)
Select the low power mode when enter deep sleep mode.
__STATIC_INLINE void DDL_RCM_SetSRAMLowPowerMode(uint32_t WorkMode)
Configura the SRAM work mode when enter stop mode.
__STATIC_INLINE void DDL_RCM_DisableBackupWriteProtect(void)
Disable the back up area write protect.
__STATIC_INLINE void DDL_RCM_EnableBackupWriteProtect(void)
Enable the back up area write protect.
__STATIC_INLINE void DDL_RCM_ConfigMCO(uint32_t Source, uint32_t Prescaler)
Configure MCOx.
__STATIC_INLINE void DDL_RCM_DisableMCO(void)
Disable clock output.
__STATIC_INLINE void DDL_RCM_EnableMCO(void)
Enable clock output.
__STATIC_INLINE void DDL_RCM_EnableInternalResetPulseToNRST(void)
Enable NRST output pulse to NRST pin.
__STATIC_INLINE void DDL_RCM_DisableInternalResetPulseToNRST(void)
Disable NRST output pulse to NRST pin.
__STATIC_INLINE void DDL_RCM_PLL_Enable(void)
Enable PLL Oscillator.
__STATIC_INLINE void DDL_RCM_PLL_SetPrescaler(uint32_t Prescaler)
Configure PLL clock source prescaler factor.
__STATIC_INLINE void DDL_RCM_PLL_SetMultiplier(uint32_t Mul)
Configure PLL multiplier.
__STATIC_INLINE void DDL_RCM_PLL_SetClkSource(uint32_t Source)
Configure PLL clock source.
__STATIC_INLINE uint32_t DDL_RCM_PLL_GetMultiplier(void)
Get PLL multiplier.
__STATIC_INLINE uint32_t DDL_RCM_PLL_GetClkSource(void)
Get PLL control clock source.
__STATIC_INLINE uint32_t DDL_RCM_PLL_IsReady(void)
Check if PLL is Ready.
__STATIC_INLINE void DDL_RCM_PLL_Disable(void)
Disable PLL Oscillator.
__STATIC_INLINE uint32_t DDL_RCM_PLL_GetPrescaler(void)
Get PLL clock source prescaler factor.
__STATIC_INLINE void DDL_RCM_EnableAHBPeripheral(uint32_t Peripheral)
Enable the AHB peripheral.
__STATIC_INLINE void DDL_RCM_DisableAPBPeripheral(uint32_t Peripheral)
Disable the APB peripheral.
__STATIC_INLINE void DDL_RCM_DisableAHBPeripheral(uint32_t Peripheral)
Disable the AHB peripheral.
__STATIC_INLINE void DDL_RCM_EnableAPBPeripheral(uint32_t Peripheral)
Enable the APB peripheral.
__STATIC_INLINE uint32_t DDL_RCM_GetAHBPrescaler(void)
Get AHB prescaler.
__STATIC_INLINE void DDL_RCM_SetAPBPrescaler(uint32_t Prescaler)
Set APB prescaler.
__STATIC_INLINE void DDL_RCM_SetAHBPrescaler(uint32_t Prescaler)
Set AHB prescaler.
__STATIC_INLINE uint32_t DDL_RCM_GetAPBPrescaler(void)
Get APB prescaler.
__STATIC_INLINE void DDL_RCM_EnableAPBReset(uint32_t Peripheral)
Enable the APB peripheral reset.
__STATIC_INLINE void DDL_RCM_EnableAHBReset(uint32_t Peripheral)
Enable the AHB peripheral reset.
__STATIC_INLINE void DDL_RCM_DisableAPBReset(uint32_t Peripheral)
Disable the APB peripheral reset.
__STATIC_INLINE void DDL_RCM_DisableAHBReset(uint32_t Peripheral)
Disable the AHB peripheral reset.
__STATIC_INLINE uint32_t DDL_RCM_GetLSEDrive(void)
Get LSE drive capacity.
__STATIC_INLINE uint32_t DDL_RCM_GetLSELeakageTrim(void)
Get XIN port leakage compensation trim value.
__STATIC_INLINE void DDL_RCM_DisableLSELeakageDetect(void)
Disable LSE leakage detection.
__STATIC_INLINE void DDL_RCM_SetLSELeakageTrim(uint32_t Trim)
Set XIN port leakage compensation trim value.
__STATIC_INLINE uint32_t DDL_RCM_IsEnabledLSELeakageDetect(void)
Check whether LSE leakage detection is enabled.
__STATIC_INLINE uint32_t DDL_RCM_IsActiveFlag_LSELeakageDetect(void)
Get LSE leakage detection status.
__STATIC_INLINE void DDL_RCM_SetLSEDrive(uint32_t Drive)
Set LSE drive capacity.
__STATIC_INLINE void DDL_RCM_EnableLSELeakageDetect(void)
Enable LSE leakage detection.
__STATIC_INLINE void DDL_RCM_RequestLSEAutoTrim(void)
Request LSE leakage compensation automatic calibration.
__STATIC_INLINE void DDL_RCM_DisableSysClkSwitch(void)
Disable System clock source switching.
__STATIC_INLINE void DDL_RCM_SetSysClkSource(uint32_t Source)
Configure System clock source.
__STATIC_INLINE uint32_t DDL_RCM_GetSysClkSource(void)
Get System clock source.
__STATIC_INLINE uint32_t DDL_RCM_IsActiveFlag_SWERR(void)
Check if switch error event occurred or not.
__STATIC_INLINE void DDL_RCM_EnableSysClkSwitch(void)
Enable System clock source switching.
__STATIC_INLINE uint32_t DDL_RCM_IsActiveFlag_SWDONE(void)
Check if swtich done event occurred or not.
#define __DDL_RCM_KEY
const uint8_t APBPrescTable[8]
const uint8_t AHBPrescTable[16]
RCM Clocks Frequency Structure.