44#ifndef G32R4xx_DDL_RCM_H
45#define G32R4xx_DDL_RCM_H
68#if defined(USE_FULL_DDL_DRIVER)
79#if defined(USE_FULL_DDL_DRIVER)
118#if !defined (HSE_VALUE)
119#define HSE_VALUE 8000000U
122#if !defined (HSI_VALUE)
123#define HSI_VALUE 8000000U
126#if !defined (LSE_VALUE)
127#define LSE_VALUE 32768U
130#if !defined (LSI_VALUE)
131#define LSI_VALUE 32000U
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
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
176#define DDL_RCM_SYS_CLKSOURCE_HSI (0x00000000U)
177#define DDL_RCM_SYS_CLKSOURCE_HSE (0x00000001U)
178#define DDL_RCM_SYS_CLKSOURCE_PLL (0x00000002U)
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)
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)
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
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
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
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
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)
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)
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)
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)
337#if defined(USE_FULL_DDL_DRIVER)
341#define DDL_RCM_PERIPH_FREQUENCY_NO 0x00000000U
342#define DDL_RCM_PERIPH_FREQUENCY_NA 0xFFFFFFFFU
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
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)
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)
383#define DDL_RCM_ADCACLK_PLL (0x00000000U)
384#define DDL_RCM_ADCACLK_SYSCLK (RCM_ADCCR_ADCACLKSEL)
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)
403#define DDL_RCM_LSE_DRIVE_LOW (0x00000000UL)
404#define DDL_RCM_LSE_DRIVE_HIGH RCM_SYS_ANACR0_LSEDRV
428#define DDL_RCM_WriteReg(__REG__, __VALUE__) WRITE_REG(RCM->__REG__, (__VALUE__))
435#define DDL_RCM_ReadReg(__REG__) READ_REG(RCM->__REG__)
453#define __DDL_RCM_CALC_PLLCLK_FREQ(__INPUTFREQ__, __PLLP__, __PLLMUL__) (((__INPUTFREQ__) / (__PLLP__)) * (__PLLMUL__))
470#define __DDL_RCM_CALC_HCLK_FREQ(__SYSCLKFREQ__, __AHBPRESCALER__) ((__SYSCLKFREQ__) >> AHBPrescTable[((__AHBPRESCALER__) & RCM_SCCR_HDIV) >> RCM_SCCR_HDIV_Pos])
483#define __DDL_RCM_CALC_PCLK_FREQ(__HCLKFREQ__, __APBPRESCALER__) ((__HCLKFREQ__) >> APBPrescTable[(__APBPRESCALER__) >> RCM_SCCR_PDIV_Pos])
485#define __DDL_RCM_KEY 0x87E4
487#define IS_DDL_RCM_LSE_DRIVE(__VALUE__) (((__VALUE__) == DDL_RCM_LSE_DRIVE_LOW) \
488 || ((__VALUE__) == DDL_RCM_LSE_DRIVE_HIGH))
524 SET_BIT(RCM->KEY, RCM_KEY_KEYST);
541 SET_BIT(RCM->SYS_ANACR0, RCM_SYS_ANACR0_LSELKDTEN);
550 CLEAR_BIT(RCM->SYS_ANACR0, RCM_SYS_ANACR0_LSELKDTEN);
559 return ((READ_BIT(RCM->SYS_ANACR0, RCM_SYS_ANACR0_LSELKDTEN) == RCM_SYS_ANACR0_LSELKDTEN) ? 1UL : 0UL);
571 MODIFY_REG(RCM->SYS_ANACR0, RCM_SYS_ANACR0_LSEDRV, Drive);
582 return (uint32_t)READ_BIT(RCM->SYS_ANACR0, RCM_SYS_ANACR0_LSEDRV);
591 return ((READ_BIT(RCM->SYS_ANACR0, RCM_SYS_ANACR0_LSELKDTSTA) == RCM_SYS_ANACR0_LSELKDTSTA) ? 1UL : 0UL);
600 SET_BIT(RCM->SYS_ANACR0, RCM_SYS_ANACR0_LSEAUTOTRIMREQ);
610 MODIFY_REG(RCM->SYS_ANACR0, RCM_SYS_ANACR0_LSE_LEAKTRIM, (Trim << RCM_SYS_ANACR0_LSE_LEAKTRIM_Pos));
619 return (uint32_t)(READ_BIT(RCM->SYS_ANACR0, RCM_SYS_ANACR0_LSE_LEAKTRIM) >> RCM_SYS_ANACR0_LSE_LEAKTRIM_Pos);
640 SET_BIT(PMU->CR, PMU_CR_LSION);
652 CLEAR_BIT(PMU->CR, PMU_CR_LSION);
664 return (READ_BIT(PMU->CR, PMU_CR_LSIRDY) == (PMU_CR_LSIRDY));
681 SET_BIT(RCM->RCCR, RCM_RCCR_HSION);
690 CLEAR_BIT(RCM->RCCR, RCM_RCCR_HSION);
699 return (READ_BIT(RCM->RCCR, RCM_RCCR_HSIRDY) == (RCM_RCCR_HSIRDY));
716 SET_BIT(RCM->RCCR, RCM_RCCR_CSSON);
725 CLEAR_BIT(RCM->RCCR, RCM_RCCR_CSSON);
733 SET_BIT(RCM->RCCR, RCM_RCCR_HSEON);
742 CLEAR_BIT(RCM->RCCR, RCM_RCCR_HSEON);
750 return (READ_BIT(RCM->RCCR, RCM_RCCR_HSERDY) == (RCM_RCCR_HSERDY));
758 return (READ_BIT(RCM->RCCR, RCM_RCCR_HSEBYPASS) == (RCM_RCCR_HSEBYPASS));
774 SET_BIT(RCM->RCCR, RCM_RCCR_LSECSSON);
783 CLEAR_BIT(RCM->RCCR, RCM_RCCR_LSECSSON);
792 SET_BIT(RCM->RCCR, RCM_RCCR_LSEON);
801 CLEAR_BIT(RCM->RCCR, RCM_RCCR_LSEON);
810 return (READ_BIT(RCM->RCCR, RCM_RCCR_LSERDY) == (RCM_RCCR_LSERDY));
819 return (READ_BIT(RCM->RCCR, RCM_RCCR_LSEBYPASS) == (RCM_RCCR_LSEBYPASS));
835 SET_BIT(RCM->RCCR, RCM_RCCR_PLLON);
844 CLEAR_BIT(RCM->RCCR, RCM_RCCR_PLLON);
853 return (READ_BIT(RCM->RCCR, RCM_RCCR_PLLRDY) == (RCM_RCCR_PLLRDY));
866 MODIFY_REG(RCM->PLLCR, RCM_PLLCR_PLLSRC, Source);
878 return (uint32_t)(READ_BIT(RCM->PLLCR, RCM_PLLCR_PLLSRC));
903 MODIFY_REG(RCM->PLLCR, RCM_PLLCR_PLLP, Prescaler);
927 return (uint32_t)(READ_BIT(RCM->PLLCR, RCM_PLLCR_PLLP));
937 MODIFY_REG(RCM->PLLCR, RCM_PLLCR_PLLMUL, (Mul << RCM_PLLCR_PLLMUL_Pos));
946 return (uint32_t)(READ_BIT(RCM->PLLCR, RCM_PLLCR_PLLMUL) >> RCM_PLLCR_PLLMUL_Pos);
964 SET_BIT(PMU->CR, (uint32_t)PMU_CR_BDRST);
974 CLEAR_BIT(PMU->CR, (uint32_t)PMU_CR_BDRST);
992 SET_BIT(PMU->CR, (uint32_t)PMU_CR_NRSTOUTDIS);
1002 CLEAR_BIT(PMU->CR, (uint32_t)PMU_CR_NRSTOUTDIS);
1022 MODIFY_REG(RCM->SCCR, RCM_SCCR_SW, (Source << RCM_SCCR_SW_Pos));
1034 return (uint32_t)(READ_BIT(RCM->MCCR, RCM_MCCR_SWST) >> RCM_MCCR_SWST_Pos);
1043 SET_BIT(RCM->MCCR, RCM_MCCR_CSEN);
1052 CLEAR_BIT(RCM->MCCR, RCM_MCCR_CSEN);
1061 return (uint32_t)(READ_BIT(RCM->MCCR, RCM_MCCR_SWDONE) == RCM_MCCR_SWDONE ? 1UL : 0UL);
1070 return (uint32_t)(READ_BIT(RCM->MCCR, RCM_MCCR_SWERR) == RCM_MCCR_SWERR ? 1UL : 0UL);
1095 MODIFY_REG(RCM->SCCR, RCM_SCCR_HDIV, Prescaler);
1113 return (uint32_t)(READ_BIT(RCM->SCCR, RCM_SCCR_HDIV));
1128 MODIFY_REG(RCM->SCCR, RCM_SCCR_PDIV, Prescaler);
1142 return (uint32_t)(READ_BIT(RCM->SCCR, RCM_SCCR_PDIV));
1158 SET_BIT(RCM->SCCR, RCM_SCCR_CLKOUTEN);
1167 CLEAR_BIT(RCM->SCCR, RCM_SCCR_CLKOUTEN);
1189 MODIFY_REG(RCM->SCCR, (RCM_SCCR_CLKOUTSEL | RCM_SCCR_CLKOUTDIV), (Source | Prescaler));
1211 CLEAR_BIT(RCM->AHBRST, Peripheral);
1226 SET_BIT(RCM->AHBRST, Peripheral);
1249 CLEAR_BIT(RCM->APBRST, Peripheral);
1272 SET_BIT(RCM->APBRST, Peripheral);
1295 SET_BIT(RCM->AHBCG, Peripheral);
1312 CLEAR_BIT(RCM->AHBCG, Peripheral);
1337 SET_BIT(RCM->APBCG, Peripheral);
1362 CLEAR_BIT(RCM->APBCG, Peripheral);
1380 MODIFY_REG(RCM->PWRCR, RCM_PWRCR_LPM, Mode);
1392 MODIFY_REG(RCM->PWRCR, RCM_PWRCR_RAM1RET, WorkMode);
1401 CLEAR_BIT(RCM->PWRCR, RCM_PWRCR_BKPWP);
1410 SET_BIT(RCM->PWRCR, RCM_PWRCR_BKPWP);
1431 MODIFY_REG(RCM->ADCCR, RCM_ADCCR_ADC16ADIV, Division);
1444 return (uint32_t)(READ_BIT(RCM->ADCCR, RCM_ADCCR_ADC16ADIV));
1454 return (uint32_t)(READ_BIT(RCM->ADCCR, RCM_ADCCR_ADC16ACLKRDY) == RCM_ADCCR_ADC16ACLKRDY);
1468 MODIFY_REG(RCM->ADCCR, RCM_ADCCR_ADC12ADIV, Division);
1482 return (uint32_t)(READ_BIT(RCM->ADCCR, RCM_ADCCR_ADC12ADIV));
1492 return (uint32_t)(READ_BIT(RCM->ADCCR, RCM_ADCCR_ADC12ACLKRDY) == RCM_ADCCR_ADC12ACLKRDY);
1504 MODIFY_REG(RCM->ADCCR, RCM_ADCCR_ADCACLKSEL, Source);
1516 return (uint32_t)(READ_BIT(RCM->ADCCR, RCM_ADCCR_ADCACLKSEL));
1980#if defined(USE_FULL_DDL_DRIVER)
#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.
const uint8_t APBPrescTable[8]
const uint8_t AHBPrescTable[16]
RCM Clocks Frequency Structure.
uint32_t SYSCLK_Frequency