19 #if defined(USE_FULL_LL_DRIVER) 23 #ifdef USE_FULL_ASSERT 24 #include "stm32_assert.h" 26 #define assert_param(expr) ((void)0U) 45 #if defined(RCC_CCIPR_USART3SEL) 46 #define IS_LL_RCC_USART_CLKSOURCE(__VALUE__) (((__VALUE__) == LL_RCC_USART1_CLKSOURCE) \ 47 || ((__VALUE__) == LL_RCC_USART2_CLKSOURCE) \ 48 || ((__VALUE__) == LL_RCC_USART3_CLKSOURCE)) 50 #define IS_LL_RCC_USART_CLKSOURCE(__VALUE__) (((__VALUE__) == LL_RCC_USART1_CLKSOURCE) \ 51 || ((__VALUE__) == LL_RCC_USART2_CLKSOURCE)) 54 #if defined(RCC_CCIPR_UART4SEL) && defined(RCC_CCIPR_UART5SEL) 55 #define IS_LL_RCC_UART_CLKSOURCE(__VALUE__) (((__VALUE__) == LL_RCC_UART4_CLKSOURCE) \ 56 || ((__VALUE__) == LL_RCC_UART5_CLKSOURCE)) 57 #elif defined(RCC_CCIPR_UART4SEL) 58 #define IS_LL_RCC_UART_CLKSOURCE(__VALUE__) ((__VALUE__) == LL_RCC_UART4_CLKSOURCE) 59 #elif defined(RCC_CCIPR_UART5SEL) 60 #define IS_LL_RCC_UART_CLKSOURCE(__VALUE__) ((__VALUE__) == LL_RCC_UART5_CLKSOURCE) 63 #define IS_LL_RCC_LPUART_CLKSOURCE(__VALUE__) (((__VALUE__) == LL_RCC_LPUART1_CLKSOURCE)) 65 #if defined(RCC_CCIPR_I2C2SEL) && defined(RCC_CCIPR_I2C3SEL) && defined(RCC_CCIPR2_I2C4SEL) 66 #define IS_LL_RCC_I2C_CLKSOURCE(__VALUE__) (((__VALUE__) == LL_RCC_I2C1_CLKSOURCE) \ 67 || ((__VALUE__) == LL_RCC_I2C2_CLKSOURCE) \ 68 || ((__VALUE__) == LL_RCC_I2C3_CLKSOURCE) \ 69 || ((__VALUE__) == LL_RCC_I2C4_CLKSOURCE)) 70 #elif defined(RCC_CCIPR_I2C2SEL) && defined(RCC_CCIPR_I2C3SEL) 71 #define IS_LL_RCC_I2C_CLKSOURCE(__VALUE__) (((__VALUE__) == LL_RCC_I2C1_CLKSOURCE) \ 72 || ((__VALUE__) == LL_RCC_I2C2_CLKSOURCE) \ 73 || ((__VALUE__) == LL_RCC_I2C3_CLKSOURCE)) 75 #elif !defined(RCC_CCIPR_I2C2SEL) && defined(RCC_CCIPR_I2C3SEL) 76 #define IS_LL_RCC_I2C_CLKSOURCE(__VALUE__) (((__VALUE__) == LL_RCC_I2C1_CLKSOURCE) \ 77 || ((__VALUE__) == LL_RCC_I2C3_CLKSOURCE)) 80 #define IS_LL_RCC_I2C_CLKSOURCE(__VALUE__) ((__VALUE__) == LL_RCC_I2C1_CLKSOURCE) 83 #define IS_LL_RCC_LPTIM_CLKSOURCE(__VALUE__) (((__VALUE__) == LL_RCC_LPTIM1_CLKSOURCE) \ 84 || ((__VALUE__) == LL_RCC_LPTIM2_CLKSOURCE)) 86 #if defined(RCC_CCIPR_SAI2SEL) || defined(RCC_CCIPR2_SAI2SEL) 87 #define IS_LL_RCC_SAI_CLKSOURCE(__VALUE__) (((__VALUE__) == LL_RCC_SAI1_CLKSOURCE) \ 88 || ((__VALUE__) == LL_RCC_SAI2_CLKSOURCE)) 89 #elif defined(RCC_CCIPR_SAI1SEL) || defined(RCC_CCIPR2_SAI1SEL) 90 #define IS_LL_RCC_SAI_CLKSOURCE(__VALUE__) ((__VALUE__) == LL_RCC_SAI1_CLKSOURCE) 94 #if defined(RCC_CCIPR2_SDMMCSEL) 95 #define IS_LL_RCC_SDMMC_KERNELCLKSOURCE(__VALUE__) (((__VALUE__) == LL_RCC_SDMMC1_KERNELCLKSOURCE)) 98 #define IS_LL_RCC_SDMMC_CLKSOURCE(__VALUE__) (((__VALUE__) == LL_RCC_SDMMC1_CLKSOURCE)) 101 #define IS_LL_RCC_RNG_CLKSOURCE(__VALUE__) (((__VALUE__) == LL_RCC_RNG_CLKSOURCE)) 103 #if defined(USB_OTG_FS) || defined(USB) 104 #define IS_LL_RCC_USB_CLKSOURCE(__VALUE__) (((__VALUE__) == LL_RCC_USB_CLKSOURCE)) 107 #define IS_LL_RCC_ADC_CLKSOURCE(__VALUE__) (((__VALUE__) == LL_RCC_ADC_CLKSOURCE)) 110 #define IS_LL_RCC_SWPMI_CLKSOURCE(__VALUE__) (((__VALUE__) == LL_RCC_SWPMI1_CLKSOURCE)) 113 #if defined(DFSDM1_Channel0) 114 #define IS_LL_RCC_DFSDM_CLKSOURCE(__VALUE__) (((__VALUE__) == LL_RCC_DFSDM1_CLKSOURCE)) 115 #if defined(RCC_CCIPR2_DFSDM1SEL) 116 #define IS_LL_RCC_DFSDM_AUDIO_CLKSOURCE(__VALUE__) (((__VALUE__) == LL_RCC_DFSDM1_AUDIO_CLKSOURCE)) 121 #define IS_LL_RCC_DSI_CLKSOURCE(__VALUE__) (((__VALUE__) == LL_RCC_DSI_CLKSOURCE)) 125 #define IS_LL_RCC_LTDC_CLKSOURCE(__VALUE__) (((__VALUE__) == LL_RCC_LTDC_CLKSOURCE)) 128 #if defined(OCTOSPI1) 129 #define IS_LL_RCC_OCTOSPI_CLKSOURCE(__VALUE__) (((__VALUE__) == LL_RCC_OCTOSPI_CLKSOURCE)) 147 #if defined(RCC_PLLSAI1_SUPPORT) 152 #if defined(RCC_PLLSAI2_SUPPORT) 194 __IO uint32_t vl_mask;
214 LL_RCC_WriteReg(CFGR, 0x00000000U);
217 vl_mask = LL_RCC_ReadReg(CR);
221 (RCC_CR_HSION | RCC_CR_HSIASFS | RCC_CR_HSIKERON | RCC_CR_HSEON | RCC_CR_PLLON));
223 #if defined(RCC_PLLSAI1_SUPPORT) 228 #if defined(RCC_PLLSAI2_SUPPORT) 234 LL_RCC_WriteReg(CR, vl_mask);
236 #if defined(RCC_PLLSAI2_SUPPORT) 238 while(READ_BIT(RCC->CR, RCC_CR_PLLRDY | RCC_CR_PLLSAI1RDY | RCC_CR_PLLSAI2RDY) != 0U)
241 #elif defined(RCC_PLLSAI1_SUPPORT) 243 while(READ_BIT(RCC->CR, RCC_CR_PLLRDY | RCC_CR_PLLSAI1RDY) != 0U)
248 while(READ_BIT(RCC->CR, RCC_CR_PLLRDY) != 0U)
254 LL_RCC_WriteReg(PLLCFGR, 16U << RCC_PLLCFGR_PLLN_Pos);
256 #if defined(RCC_PLLSAI1_SUPPORT) 258 LL_RCC_WriteReg(PLLSAI1CFGR, 16U << RCC_PLLSAI1CFGR_PLLSAI1N_Pos);
261 #if defined(RCC_PLLSAI2_SUPPORT) 263 LL_RCC_WriteReg(PLLSAI2CFGR, 16U << RCC_PLLSAI2CFGR_PLLSAI2N_Pos);
270 LL_RCC_WriteReg(CIER, 0x00000000U);
273 vl_mask = RCC_CICR_LSIRDYC | RCC_CICR_LSERDYC | RCC_CICR_MSIRDYC | RCC_CICR_HSIRDYC | RCC_CICR_HSERDYC | RCC_CICR_PLLRDYC | \
274 RCC_CICR_CSSC | RCC_CICR_LSECSSC;
275 #if defined(RCC_HSI48_SUPPORT) 276 vl_mask |= RCC_CICR_HSI48RDYC;
278 #if defined(RCC_PLLSAI1_SUPPORT) 279 vl_mask |= RCC_CICR_PLLSAI1RDYC;
281 #if defined(RCC_PLLSAI2_SUPPORT) 282 vl_mask |= RCC_CICR_PLLSAI2RDYC;
284 LL_RCC_WriteReg(CICR, vl_mask);
357 uint32_t usart_frequency = LL_RCC_PERIPH_FREQUENCY_NO;
362 if (USARTxSource == LL_RCC_USART1_CLKSOURCE)
367 case LL_RCC_USART1_CLKSOURCE_SYSCLK:
371 case LL_RCC_USART1_CLKSOURCE_HSI:
374 usart_frequency = HSI_VALUE;
378 case LL_RCC_USART1_CLKSOURCE_LSE:
381 usart_frequency = LSE_VALUE;
385 case LL_RCC_USART1_CLKSOURCE_PCLK2:
393 else if (USARTxSource == LL_RCC_USART2_CLKSOURCE)
398 case LL_RCC_USART2_CLKSOURCE_SYSCLK:
402 case LL_RCC_USART2_CLKSOURCE_HSI:
405 usart_frequency = HSI_VALUE;
409 case LL_RCC_USART2_CLKSOURCE_LSE:
412 usart_frequency = LSE_VALUE;
416 case LL_RCC_USART2_CLKSOURCE_PCLK1:
426 #if defined(RCC_CCIPR_USART3SEL) 427 if (USARTxSource == LL_RCC_USART3_CLKSOURCE)
432 case LL_RCC_USART3_CLKSOURCE_SYSCLK:
436 case LL_RCC_USART3_CLKSOURCE_HSI:
439 usart_frequency = HSI_VALUE;
443 case LL_RCC_USART3_CLKSOURCE_LSE:
446 usart_frequency = LSE_VALUE;
450 case LL_RCC_USART3_CLKSOURCE_PCLK1:
460 return usart_frequency;
463 #if defined(RCC_CCIPR_UART4SEL) || defined(RCC_CCIPR_UART5SEL) 474 uint32_t uart_frequency = LL_RCC_PERIPH_FREQUENCY_NO;
479 #if defined(RCC_CCIPR_UART4SEL) 480 if (UARTxSource == LL_RCC_UART4_CLKSOURCE)
485 case LL_RCC_UART4_CLKSOURCE_SYSCLK:
489 case LL_RCC_UART4_CLKSOURCE_HSI:
492 uart_frequency = HSI_VALUE;
496 case LL_RCC_UART4_CLKSOURCE_LSE:
499 uart_frequency = LSE_VALUE;
503 case LL_RCC_UART4_CLKSOURCE_PCLK1:
513 #if defined(RCC_CCIPR_UART5SEL) 514 if (UARTxSource == LL_RCC_UART5_CLKSOURCE)
519 case LL_RCC_UART5_CLKSOURCE_SYSCLK:
523 case LL_RCC_UART5_CLKSOURCE_HSI:
526 uart_frequency = HSI_VALUE;
530 case LL_RCC_UART5_CLKSOURCE_LSE:
533 uart_frequency = LSE_VALUE;
537 case LL_RCC_UART5_CLKSOURCE_PCLK1:
547 return uart_frequency;
565 uint32_t i2c_frequency = LL_RCC_PERIPH_FREQUENCY_NO;
570 if (I2CxSource == LL_RCC_I2C1_CLKSOURCE)
575 case LL_RCC_I2C1_CLKSOURCE_SYSCLK:
579 case LL_RCC_I2C1_CLKSOURCE_HSI:
582 i2c_frequency = HSI_VALUE;
586 case LL_RCC_I2C1_CLKSOURCE_PCLK1:
594 #if defined(RCC_CCIPR_I2C2SEL) 595 else if (I2CxSource == LL_RCC_I2C2_CLKSOURCE)
600 case LL_RCC_I2C2_CLKSOURCE_SYSCLK:
604 case LL_RCC_I2C2_CLKSOURCE_HSI:
607 i2c_frequency = HSI_VALUE;
611 case LL_RCC_I2C2_CLKSOURCE_PCLK1:
622 if (I2CxSource == LL_RCC_I2C3_CLKSOURCE)
627 case LL_RCC_I2C3_CLKSOURCE_SYSCLK:
631 case LL_RCC_I2C3_CLKSOURCE_HSI:
634 i2c_frequency = HSI_VALUE;
638 case LL_RCC_I2C3_CLKSOURCE_PCLK1:
646 #if defined(RCC_CCIPR2_I2C4SEL) 649 if (I2CxSource == LL_RCC_I2C4_CLKSOURCE)
654 case LL_RCC_I2C4_CLKSOURCE_SYSCLK:
658 case LL_RCC_I2C4_CLKSOURCE_HSI:
661 i2c_frequency = HSI_VALUE;
665 case LL_RCC_I2C4_CLKSOURCE_PCLK1:
677 return i2c_frequency;
690 uint32_t lpuart_frequency = LL_RCC_PERIPH_FREQUENCY_NO;
693 assert_param(IS_LL_RCC_LPUART_CLKSOURCE(LPUARTxSource));
698 case LL_RCC_LPUART1_CLKSOURCE_SYSCLK:
702 case LL_RCC_LPUART1_CLKSOURCE_HSI:
705 lpuart_frequency = HSI_VALUE;
709 case LL_RCC_LPUART1_CLKSOURCE_LSE:
712 lpuart_frequency = LSE_VALUE;
716 case LL_RCC_LPUART1_CLKSOURCE_PCLK1:
724 return lpuart_frequency;
737 uint32_t lptim_frequency = LL_RCC_PERIPH_FREQUENCY_NO;
742 if (LPTIMxSource == LL_RCC_LPTIM1_CLKSOURCE)
747 case LL_RCC_LPTIM1_CLKSOURCE_LSI:
750 #if defined(RCC_CSR_LSIPREDIV) 753 lptim_frequency = LSI_VALUE / 128U;
758 lptim_frequency = LSI_VALUE;
763 case LL_RCC_LPTIM1_CLKSOURCE_HSI:
766 lptim_frequency = HSI_VALUE;
770 case LL_RCC_LPTIM1_CLKSOURCE_LSE:
773 lptim_frequency = LSE_VALUE;
777 case LL_RCC_LPTIM1_CLKSOURCE_PCLK1:
787 if (LPTIMxSource == LL_RCC_LPTIM2_CLKSOURCE)
792 case LL_RCC_LPTIM2_CLKSOURCE_LSI:
795 #if defined(RCC_CSR_LSIPREDIV) 798 lptim_frequency = LSI_VALUE / 128U;
803 lptim_frequency = LSI_VALUE;
808 case LL_RCC_LPTIM2_CLKSOURCE_HSI:
811 lptim_frequency = HSI_VALUE;
815 case LL_RCC_LPTIM2_CLKSOURCE_LSE:
818 lptim_frequency = LSE_VALUE;
822 case LL_RCC_LPTIM2_CLKSOURCE_PCLK1:
832 return lptim_frequency;
835 #if defined(RCC_CCIPR_SAI1SEL) || defined(RCC_CCIPR_SAI2SEL) || defined(RCC_CCIPR2_SAI1SEL) || defined(RCC_CCIPR2_SAI2SEL) 849 uint32_t sai_frequency = LL_RCC_PERIPH_FREQUENCY_NO;
854 if (SAIxSource == LL_RCC_SAI1_CLKSOURCE)
859 case LL_RCC_SAI1_CLKSOURCE_PLLSAI1:
866 #if defined(RCC_PLLSAI2_SUPPORT) 867 case LL_RCC_SAI1_CLKSOURCE_PLLSAI2:
875 case LL_RCC_SAI1_CLKSOURCE_PLL:
882 case LL_RCC_SAI1_CLKSOURCE_PIN:
883 sai_frequency = EXTERNAL_SAI1_CLOCK_VALUE;
892 #if defined(RCC_CCIPR_SAI2SEL) || defined(RCC_CCIPR2_SAI2SEL) 893 if (SAIxSource == LL_RCC_SAI2_CLKSOURCE)
898 case LL_RCC_SAI2_CLKSOURCE_PLLSAI1:
905 #if defined(RCC_PLLSAI2_SUPPORT) 906 case LL_RCC_SAI2_CLKSOURCE_PLLSAI2:
914 case LL_RCC_SAI2_CLKSOURCE_PLL:
921 case LL_RCC_SAI2_CLKSOURCE_PIN:
922 sai_frequency = EXTERNAL_SAI2_CLOCK_VALUE;
932 return sai_frequency;
937 #if defined(RCC_CCIPR2_SDMMCSEL) 948 uint32_t sdmmc_frequency = LL_RCC_PERIPH_FREQUENCY_NO;
951 assert_param(IS_LL_RCC_SDMMC_KERNELCLKSOURCE(SDMMCxSource));
956 case LL_RCC_SDMMC1_KERNELCLKSOURCE_48CLK:
960 case LL_RCC_SDMMC1_KERNELCLKSOURCE_PLLP:
968 sdmmc_frequency = LL_RCC_PERIPH_FREQUENCY_NA;
972 return sdmmc_frequency;
986 uint32_t sdmmc_frequency = LL_RCC_PERIPH_FREQUENCY_NO;
994 #if defined(LL_RCC_SDMMC1_CLKSOURCE_PLLSAI1) 995 case LL_RCC_SDMMC1_CLKSOURCE_PLLSAI1:
1003 case LL_RCC_SDMMC1_CLKSOURCE_PLL:
1010 #if defined(LL_RCC_SDMMC1_CLKSOURCE_MSI) 1011 case LL_RCC_SDMMC1_CLKSOURCE_MSI:
1022 #if defined(RCC_HSI48_SUPPORT) 1023 case LL_RCC_SDMMC1_CLKSOURCE_HSI48:
1026 sdmmc_frequency = HSI48_VALUE;
1030 case LL_RCC_SDMMC1_CLKSOURCE_NONE:
1033 sdmmc_frequency = LL_RCC_PERIPH_FREQUENCY_NA;
1037 return sdmmc_frequency;
1051 uint32_t rng_frequency = LL_RCC_PERIPH_FREQUENCY_NO;
1059 #if defined(RCC_PLLSAI1_SUPPORT) 1060 case LL_RCC_RNG_CLKSOURCE_PLLSAI1:
1068 case LL_RCC_RNG_CLKSOURCE_PLL:
1075 case LL_RCC_RNG_CLKSOURCE_MSI:
1086 #if defined(RCC_HSI48_SUPPORT) 1087 case LL_RCC_RNG_CLKSOURCE_HSI48:
1090 rng_frequency = HSI48_VALUE;
1094 case LL_RCC_RNG_CLKSOURCE_NONE:
1097 rng_frequency = LL_RCC_PERIPH_FREQUENCY_NA;
1102 return rng_frequency;
1106 #if defined(USB_OTG_FS)||defined(USB) 1117 uint32_t usb_frequency = LL_RCC_PERIPH_FREQUENCY_NO;
1125 #if defined(RCC_PLLSAI1_SUPPORT) 1126 case LL_RCC_USB_CLKSOURCE_PLLSAI1:
1134 case LL_RCC_USB_CLKSOURCE_PLL:
1141 case LL_RCC_USB_CLKSOURCE_MSI:
1151 #if defined(RCC_HSI48_SUPPORT) 1152 case LL_RCC_USB_CLKSOURCE_HSI48:
1155 usb_frequency = HSI48_VALUE;
1159 case LL_RCC_USB_CLKSOURCE_NONE:
1162 usb_frequency = LL_RCC_PERIPH_FREQUENCY_NA;
1166 return usb_frequency;
1180 uint32_t adc_frequency = LL_RCC_PERIPH_FREQUENCY_NO;
1188 #if defined(RCC_PLLSAI1_SUPPORT) 1189 case LL_RCC_ADC_CLKSOURCE_PLLSAI1:
1197 #if defined(RCC_PLLSAI2_SUPPORT) && defined(LL_RCC_ADC_CLKSOURCE_PLLSAI2) 1198 case LL_RCC_ADC_CLKSOURCE_PLLSAI2:
1206 case LL_RCC_ADC_CLKSOURCE_SYSCLK:
1210 case LL_RCC_ADC_CLKSOURCE_NONE:
1212 adc_frequency = LL_RCC_PERIPH_FREQUENCY_NA;
1216 return adc_frequency;
1229 uint32_t swpmi_frequency = LL_RCC_PERIPH_FREQUENCY_NO;
1237 case LL_RCC_SWPMI1_CLKSOURCE_HSI:
1240 swpmi_frequency = HSI_VALUE;
1244 case LL_RCC_SWPMI1_CLKSOURCE_PCLK1:
1252 return swpmi_frequency;
1256 #if defined(DFSDM1_Channel0) 1265 uint32_t dfsdm_frequency = LL_RCC_PERIPH_FREQUENCY_NO;
1273 case LL_RCC_DFSDM1_CLKSOURCE_SYSCLK:
1277 case LL_RCC_DFSDM1_CLKSOURCE_PCLK2:
1285 return dfsdm_frequency;
1288 #if defined(RCC_CCIPR2_DFSDM1SEL) 1298 uint32_t dfsdm_frequency = LL_RCC_PERIPH_FREQUENCY_NO;
1301 assert_param(IS_LL_RCC_DFSDM_AUDIO_CLKSOURCE(DFSDMxSource));
1306 case LL_RCC_DFSDM1_AUDIO_CLKSOURCE_SAI1:
1310 case LL_RCC_DFSDM1_AUDIO_CLKSOURCE_MSI:
1320 case LL_RCC_DFSDM1_AUDIO_CLKSOURCE_HSI:
1324 dfsdm_frequency = HSI_VALUE;
1329 return dfsdm_frequency;
1345 uint32_t dsi_frequency = LL_RCC_PERIPH_FREQUENCY_NO;
1353 case LL_RCC_DSI_CLKSOURCE_PLL:
1360 case LL_RCC_DSI_CLKSOURCE_PHY:
1362 dsi_frequency = LL_RCC_PERIPH_FREQUENCY_NA;
1366 return dsi_frequency;
1380 uint32_t ltdc_frequency = LL_RCC_PERIPH_FREQUENCY_NO;
1390 return ltdc_frequency;
1394 #if defined(OCTOSPI1) 1404 uint32_t octospi_frequency = LL_RCC_PERIPH_FREQUENCY_NO;
1407 assert_param(IS_LL_RCC_OCTOSPI_CLKSOURCE(OCTOSPIxSource));
1412 case LL_RCC_OCTOSPI_CLKSOURCE_SYSCLK:
1416 case LL_RCC_OCTOSPI_CLKSOURCE_MSI:
1426 case LL_RCC_OCTOSPI_CLKSOURCE_PLL:
1434 octospi_frequency = LL_RCC_PERIPH_FREQUENCY_NO;
1438 return octospi_frequency;
1465 case LL_RCC_SYS_CLKSOURCE_STATUS_MSI:
1472 case LL_RCC_SYS_CLKSOURCE_STATUS_HSI:
1473 frequency = HSI_VALUE;
1476 case LL_RCC_SYS_CLKSOURCE_STATUS_HSE:
1477 frequency = HSE_VALUE;
1480 case LL_RCC_SYS_CLKSOURCE_STATUS_PLL:
1534 uint32_t pllinputfreq, pllsource;
1543 case LL_RCC_PLLSOURCE_MSI:
1550 case LL_RCC_PLLSOURCE_HSI:
1551 pllinputfreq = HSI_VALUE;
1554 case LL_RCC_PLLSOURCE_HSE:
1555 pllinputfreq = HSE_VALUE;
1576 uint32_t pllinputfreq, pllsource;
1585 case LL_RCC_PLLSOURCE_MSI:
1592 case LL_RCC_PLLSOURCE_HSI:
1593 pllinputfreq = HSI_VALUE;
1596 case LL_RCC_PLLSOURCE_HSE:
1597 pllinputfreq = HSE_VALUE;
1618 uint32_t pllinputfreq, pllsource;
1627 case LL_RCC_PLLSOURCE_MSI:
1634 case LL_RCC_PLLSOURCE_HSI:
1635 pllinputfreq = HSI_VALUE;
1638 case LL_RCC_PLLSOURCE_HSE:
1639 pllinputfreq = HSE_VALUE;
1659 uint32_t pllinputfreq, pllsource;
1667 case LL_RCC_PLLSOURCE_MSI:
1674 case LL_RCC_PLLSOURCE_HSI:
1675 pllinputfreq = HSI_VALUE;
1678 case LL_RCC_PLLSOURCE_HSE:
1679 pllinputfreq = HSE_VALUE;
1695 #if defined(RCC_PLLSAI1_SUPPORT) 1702 uint32_t pllinputfreq, pllsource;
1704 #if defined(RCC_PLLSAI2M_DIV_1_16_SUPPORT) 1714 case LL_RCC_PLLSOURCE_MSI:
1721 case LL_RCC_PLLSOURCE_HSI:
1722 pllinputfreq = HSI_VALUE;
1725 case LL_RCC_PLLSOURCE_HSE:
1726 pllinputfreq = HSE_VALUE;
1746 uint32_t pllinputfreq, pllsource;
1748 #if defined(RCC_PLLSAI2M_DIV_1_16_SUPPORT) 1758 case LL_RCC_PLLSOURCE_MSI:
1765 case LL_RCC_PLLSOURCE_HSI:
1766 pllinputfreq = HSI_VALUE;
1769 case LL_RCC_PLLSOURCE_HSE:
1770 pllinputfreq = HSE_VALUE;
1790 uint32_t pllinputfreq, pllsource;
1792 #if defined(RCC_PLLSAI2M_DIV_1_16_SUPPORT) 1802 case LL_RCC_PLLSOURCE_MSI:
1809 case LL_RCC_PLLSOURCE_HSI:
1810 pllinputfreq = HSI_VALUE;
1813 case LL_RCC_PLLSOURCE_HSE:
1814 pllinputfreq = HSE_VALUE;
1829 #if defined(RCC_PLLSAI2_SUPPORT) 1836 uint32_t pllinputfreq, pllsource;
1838 #if defined(RCC_PLLSAI2M_DIV_1_16_SUPPORT) 1848 case LL_RCC_PLLSOURCE_MSI:
1855 case LL_RCC_PLLSOURCE_HSI:
1856 pllinputfreq = HSI_VALUE;
1859 case LL_RCC_PLLSOURCE_HSE:
1860 pllinputfreq = HSE_VALUE;
1870 #if defined(RCC_PLLSAI2M_DIV_1_16_SUPPORT) 1886 uint32_t pllinputfreq, pllsource;
1894 case LL_RCC_PLLSOURCE_MSI:
1901 case LL_RCC_PLLSOURCE_HSI:
1902 pllinputfreq = HSI_VALUE;
1905 case LL_RCC_PLLSOURCE_HSE:
1906 pllinputfreq = HSE_VALUE;
1929 uint32_t pllinputfreq = 0U, pllsource = 0U;
1937 case LL_RCC_PLLSOURCE_MSI:
1944 case LL_RCC_PLLSOURCE_HSI:
1945 pllinputfreq = HSI_VALUE;
1948 case LL_RCC_PLLSOURCE_HSE:
1949 pllinputfreq = HSE_VALUE;
uint32_t RCC_GetHCLKClockFreq(uint32_t SYSCLK_Frequency)
Return HCLK clock frequency.
uint32_t LL_RCC_GetRNGClockFreq(uint32_t RNGxSource)
Return RNGx clock frequency.
__STATIC_INLINE uint32_t LL_RCC_PLLSAI2_GetN(void)
Get SAI2PLL multiplication factor for VCO PLLSAI2CFGR PLLSAI2N LL_RCC_PLLSAI2_GetN.
uint32_t LL_RCC_GetSDMMCKernelClockFreq(uint32_t SDMMCxSource)
Return SDMMCx kernel clock frequency.
RCC Clocks Frequency Structure.
__STATIC_INLINE uint32_t LL_RCC_PLLSAI2_GetDivider(void)
Get Division factor for the PLLSAI2 PLLSAI2CFGR PLLSAI2M LL_RCC_PLLSAI2_GetDivider.
uint32_t LL_RCC_GetSAIClockFreq(uint32_t SAIxSource)
Return SAIx clock frequency.
uint32_t LL_RCC_GetOCTOSPIClockFreq(uint32_t OCTOSPIxSource)
Return OCTOSPI clock frequency.
__STATIC_INLINE uint32_t LL_RCC_PLLSAI1_GetP(void)
Get SAI1PLL division factor for PLLSAI1P.
__STATIC_INLINE uint32_t LL_RCC_HSI_IsReady(void)
Check if HSI clock is ready CR HSIRDY LL_RCC_HSI_IsReady.
__STATIC_INLINE uint32_t LL_RCC_PLLSAI2_IsReady(void)
Check if PLLSAI2 Ready CR PLLSAI2RDY LL_RCC_PLLSAI2_IsReady.
uint32_t RCC_PLL_GetFreqDomain_SAI(void)
Return PLL clock frequency used for SAI domain.
__STATIC_INLINE uint32_t LL_RCC_HSI48_IsReady(void)
Check if HSI48 oscillator Ready CRRCR HSI48RDY LL_RCC_HSI48_IsReady.
__STATIC_INLINE uint32_t LL_RCC_PLL_GetQ(void)
Get Main PLL division factor for PLLQ.
__STATIC_INLINE uint32_t LL_RCC_LSI_IsReady(void)
Check if LSI is Ready CSR LSIRDY LL_RCC_LSI_IsReady.
__STATIC_INLINE uint32_t LL_RCC_PLLSAI1_GetQ(void)
Get SAI1PLL division factor for PLLSAI1Q.
__STATIC_INLINE uint32_t LL_RCC_PLLSAI1_GetR(void)
Get PLLSAI1 division factor for PLLSAIR.
Header file of RCC LL module.
uint32_t LL_RCC_GetDSIClockFreq(uint32_t DSIxSource)
Return DSI clock frequency.
__STATIC_INLINE uint32_t LL_RCC_MSI_GetRangeAfterStandby(void)
Get MSI range used after standby CSR MSISRANGE LL_RCC_MSI_GetRangeAfterStandby.
uint32_t RCC_PLLSAI2_GetFreqDomain_LTDC(void)
Return PLLSAI2 clock frequency used for LTDC domain.
uint32_t LL_RCC_GetADCClockFreq(uint32_t ADCxSource)
Return ADCx clock frequency.
__STATIC_INLINE uint32_t LL_RCC_GetSysClkSource(void)
Get the system clock source CFGR SWS LL_RCC_GetSysClkSource.
__STATIC_INLINE uint32_t LL_RCC_GetAPB1Prescaler(void)
Get APB1 prescaler CFGR PPRE1 LL_RCC_GetAPB1Prescaler.
__STATIC_INLINE uint32_t LL_RCC_LSI_GetPrediv(void)
Get LSI division factor CSR LSIPREDIV LL_RCC_LSI_GetPrediv.
uint32_t RCC_PLL_GetFreqDomain_48M(void)
Return PLL clock frequency used for 48 MHz domain.
__STATIC_INLINE uint32_t LL_RCC_GetSDMMCClockSource(uint32_t SDMMCx)
Get SDMMCx clock source CCIPR CLK48SEL LL_RCC_GetSDMMCClockSource.
uint32_t LL_RCC_GetDFSDMAudioClockFreq(uint32_t DFSDMxSource)
Return DFSDMx Audio clock frequency.
uint32_t LL_RCC_GetUARTClockFreq(uint32_t UARTxSource)
Return UARTx clock frequency.
__STATIC_INLINE uint32_t LL_RCC_GetOCTOSPIClockSource(uint32_t OCTOSPIx)
Get OCTOSPI clock source CCIPR2 OSPISEL LL_RCC_GetOCTOSPIClockSource.
__STATIC_INLINE uint32_t LL_RCC_PLL_GetDivider(void)
Get Division factor for the main PLL and other PLL PLLCFGR PLLM LL_RCC_PLL_GetDivider.
CLEAR_BIT(hrtc->Instance->CR, RTC_CR_WUTE)
__STATIC_INLINE uint32_t LL_RCC_GetADCClockSource(uint32_t ADCx)
Get ADCx clock source CCIPR ADCSEL LL_RCC_GetADCClockSource.
__STATIC_INLINE void LL_RCC_HSE_DisableBypass(void)
Disable HSE external oscillator (HSE Bypass) CR HSEBYP LL_RCC_HSE_DisableBypass. ...
__STATIC_INLINE uint32_t LL_RCC_PLLSAI2_GetP(void)
Get SAI2PLL division factor for PLLSAI2P.
__STATIC_INLINE uint32_t LL_RCC_PLL_IsReady(void)
Check if PLL Ready CR PLLRDY LL_RCC_PLL_IsReady.
uint32_t LL_RCC_GetLTDCClockFreq(uint32_t LTDCxSource)
Return LTDC clock frequency.
__STATIC_INLINE uint32_t LL_RCC_MSI_IsReady(void)
Check if MSI oscillator Ready CR MSIRDY LL_RCC_MSI_IsReady.
__STATIC_INLINE uint32_t LL_RCC_GetSDMMCKernelClockSource(uint32_t SDMMCx)
Get SDMMCx kernel clock source CCIPR2 SDMMCSEL LL_RCC_GetSDMMCKernelClockSource. ...
__STATIC_INLINE uint32_t LL_RCC_PLL_GetMainSource(void)
Get the oscillator used as PLL clock source. PLLCFGR PLLSRC LL_RCC_PLL_GetMainSource.
__STATIC_INLINE uint32_t LL_RCC_MSI_IsEnabledRangeSelect(void)
Check if MSI clock range is selected with MSIRANGE register CR MSIRGSEL LL_RCC_MSI_IsEnabledRangeSel...
uint32_t LL_RCC_GetDFSDMClockFreq(uint32_t DFSDMxSource)
Return DFSDMx clock frequency.
void LL_RCC_GetSystemClocksFreq(LL_RCC_ClocksTypeDef *RCC_Clocks)
Return the frequencies of different on chip clocks; System, AHB, APB1 and APB2 buses clocks...
__STATIC_INLINE void LL_RCC_MSI_Enable(void)
Enable MSI oscillator CR MSION LL_RCC_MSI_Enable.
uint32_t RCC_PLLSAI1_GetFreqDomain_48M(void)
Return PLLSAI1 clock frequency used for 48Mhz domain.
__STATIC_INLINE void LL_RCC_HSI_SetCalibTrimming(uint32_t Value)
Set HSI Calibration trimming.
__STATIC_INLINE uint32_t LL_RCC_GetDSIClockSource(uint32_t DSIx)
Get DSI Clock Source CCIPR2 DSISEL LL_RCC_GetDSIClockSource.
__STATIC_INLINE uint32_t LL_RCC_GetDFSDMClockSource(uint32_t DFSDMx)
Get DFSDMx Kernel clock source CCIPR DFSDM1SEL LL_RCC_GetDFSDMClockSource.
__STATIC_INLINE uint32_t LL_RCC_GetUARTClockSource(uint32_t UARTx)
Get UARTx clock source CCIPR UARTxSEL LL_RCC_GetUARTClockSource.
__STATIC_INLINE uint32_t LL_RCC_PLLSAI1_GetN(void)
Get SAI1PLL multiplication factor for VCO PLLSAI1CFGR PLLSAI1N LL_RCC_PLLSAI1_GetN.
__STATIC_INLINE uint32_t LL_RCC_PLLSAI2_GetR(void)
Get SAI2PLL division factor for PLLSAI2R.
uint32_t LL_RCC_GetUSARTClockFreq(uint32_t USARTxSource)
Return USARTx clock frequency.
uint32_t LL_RCC_GetSDMMCClockFreq(uint32_t SDMMCxSource)
Return SDMMCx clock frequency.
__STATIC_INLINE uint32_t LL_RCC_LSE_IsReady(void)
Check if LSE oscillator Ready BDCR LSERDY LL_RCC_LSE_IsReady.
__STATIC_INLINE uint32_t LL_RCC_PLL_GetP(void)
Get Main PLL division factor for PLLP.
__STATIC_INLINE uint32_t LL_RCC_GetAHBPrescaler(void)
Get AHB prescaler CFGR HPRE LL_RCC_GetAHBPrescaler.
uint32_t RCC_PLLSAI1_GetFreqDomain_SAI(void)
Return PLLSAI1 clock frequency used for SAI domain.
__STATIC_INLINE uint32_t LL_RCC_GetI2CClockSource(uint32_t I2Cx)
Get I2Cx clock source CCIPR I2CxSEL LL_RCC_GetI2CClockSource.
uint32_t LL_RCC_GetLPTIMClockFreq(uint32_t LPTIMxSource)
Return LPTIMx clock frequency.
__STATIC_INLINE uint32_t LL_RCC_PLLSAI1_IsReady(void)
Check if PLLSAI1 Ready CR PLLSAI1RDY LL_RCC_PLLSAI1_IsReady.
uint32_t LL_RCC_GetLPUARTClockFreq(uint32_t LPUARTxSource)
Return LPUARTx clock frequency.
__STATIC_INLINE uint32_t LL_RCC_GetUSARTClockSource(uint32_t USARTx)
Get USARTx clock source CCIPR USARTxSEL LL_RCC_GetUSARTClockSource.
uint32_t SYSCLK_Frequency
uint32_t RCC_GetSystemClockFreq(void)
Return SYSTEM clock frequency.
uint32_t RCC_PLLSAI2_GetFreqDomain_SAI(void)
Return PLLSAI2 clock frequency used for SAI domain.
uint32_t RCC_GetPCLK1ClockFreq(uint32_t HCLK_Frequency)
Return PCLK1 clock frequency.
__STATIC_INLINE uint32_t LL_RCC_PLLSAI2_GetDIVR(void)
Get PLLSAI2 division factor for PLLSAI2DIVR.
__STATIC_INLINE uint32_t LL_RCC_GetLPUARTClockSource(uint32_t LPUARTx)
Get LPUARTx clock source CCIPR LPUART1SEL LL_RCC_GetLPUARTClockSource.
uint32_t LL_RCC_GetUSBClockFreq(uint32_t USBxSource)
Return USBx clock frequency.
ErrorStatus LL_RCC_DeInit(void)
Reset the RCC clock configuration to the default reset state.
uint32_t RCC_GetPCLK2ClockFreq(uint32_t HCLK_Frequency)
Return PCLK2 clock frequency.
__STATIC_INLINE uint32_t LL_RCC_GetSWPMIClockSource(uint32_t SPWMIx)
Get SWPMIx clock source CCIPR SWPMI1SEL LL_RCC_GetSWPMIClockSource.
uint32_t RCC_PLLSAI1_GetFreqDomain_ADC(void)
Return PLLSAI1 clock frequency used for ADC domain.
__STATIC_INLINE uint32_t LL_RCC_MSI_GetRange(void)
Get the Internal Multi Speed oscillator (MSI) clock range in run mode. CR MSIRANGE LL_RCC_MSI_GetRan...
uint32_t LL_RCC_GetSWPMIClockFreq(uint32_t SWPMIxSource)
Return SWPMIx clock frequency.
uint32_t LL_RCC_GetI2CClockFreq(uint32_t I2CxSource)
Return I2Cx clock frequency.
__STATIC_INLINE uint32_t LL_RCC_GetRNGClockSource(uint32_t RNGx)
Get RNGx clock source CCIPR CLK48SEL LL_RCC_GetRNGClockSource.
__STATIC_INLINE uint32_t LL_RCC_GetAPB2Prescaler(void)
Get APB2 prescaler CFGR PPRE2 LL_RCC_GetAPB2Prescaler.
__STATIC_INLINE uint32_t LL_RCC_GetDFSDMAudioClockSource(uint32_t DFSDMx)
Get DFSDM Audio Clock Source CCIPR2 ADFSDM1SEL LL_RCC_GetDFSDMAudioClockSource.
uint32_t RCC_PLLSAI2_GetFreqDomain_DSI(void)
Return PLL clock frequency used for DSI clock.
__STATIC_INLINE void LL_RCC_MSI_SetRange(uint32_t Range)
Configure the Internal Multi Speed oscillator (MSI) clock range in run mode. CR MSIRANGE LL_RCC_MSI_...
__STATIC_INLINE void LL_RCC_MSI_SetCalibTrimming(uint32_t Value)
Set MSI Calibration trimming.
__STATIC_INLINE uint32_t LL_RCC_PLL_GetN(void)
Get Main PLL multiplication factor for VCO PLLCFGR PLLN LL_RCC_PLL_GetN.
__STATIC_INLINE uint32_t LL_RCC_GetLPTIMClockSource(uint32_t LPTIMx)
Get LPTIMx clock source CCIPR LPTIMxSEL LL_RCC_GetLPTIMClockSource.
uint32_t RCC_PLLSAI2_GetFreqDomain_ADC(void)
Return PLLSAI2 clock frequency used for ADC domain.
assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock))
__STATIC_INLINE uint32_t LL_RCC_PLL_GetR(void)
Get Main PLL division factor for PLLR.
__STATIC_INLINE void LL_RCC_ClearResetFlags(void)
Set RMVF bit to clear the reset flags. CSR RMVF LL_RCC_ClearResetFlags.
__STATIC_INLINE uint32_t LL_RCC_GetSAIClockSource(uint32_t SAIx)
Get SAIx clock source CCIPR SAIxSEL LL_RCC_GetSAIClockSource.
uint32_t RCC_PLL_GetFreqDomain_SYS(void)
Return PLL clock frequency used for system domain.
__STATIC_INLINE uint32_t LL_RCC_GetUSBClockSource(uint32_t USBx)
Get USBx clock source CCIPR CLK48SEL LL_RCC_GetUSBClockSource.