78 #ifdef HAL_RCC_MODULE_ENABLED
87 #define __MCO1_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE()
88 #define MCO1_GPIO_PORT GPIOA
89 #define MCO1_PIN GPIO_PIN_8
91 #define __MCO2_CLK_ENABLE() __HAL_RCC_GPIOC_CLK_ENABLE()
92 #define MCO2_GPIO_PORT GPIOC
93 #define MCO2_PIN GPIO_PIN_9
224 if (RCC_OscInitStruct == NULL)
230 assert_param(IS_RCC_OSCILLATORTYPE(RCC_OscInitStruct->
OscillatorType));
232 if (((RCC_OscInitStruct->
OscillatorType) & RCC_OSCILLATORTYPE_HSE) == RCC_OSCILLATORTYPE_HSE)
235 assert_param(IS_RCC_HSE(RCC_OscInitStruct->
HSEState));
237 if ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_CFGR_SWS_HSE) || \
238 ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_CFGR_SWS_PLL) && ((RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC) == RCC_PLLCFGR_PLLSRC_HSE)))
240 if ((__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET) && (RCC_OscInitStruct->
HSEState == RCC_HSE_OFF))
248 __HAL_RCC_HSE_CONFIG(RCC_OscInitStruct->
HSEState);
251 if ((RCC_OscInitStruct->
HSEState) != RCC_HSE_OFF)
257 while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET)
259 if ((
HAL_GetTick() - tickstart) > HSE_TIMEOUT_VALUE)
271 while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) != RESET)
273 if ((
HAL_GetTick() - tickstart) > HSE_TIMEOUT_VALUE)
282 if (((RCC_OscInitStruct->
OscillatorType) & RCC_OSCILLATORTYPE_HSI) == RCC_OSCILLATORTYPE_HSI)
285 assert_param(IS_RCC_HSI(RCC_OscInitStruct->
HSIState));
289 if ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_CFGR_SWS_HSI) || \
290 ((__HAL_RCC_GET_SYSCLK_SOURCE() == RCC_CFGR_SWS_PLL) && ((RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC) == RCC_PLLCFGR_PLLSRC_HSI)))
293 if ((__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET) && (RCC_OscInitStruct->
HSIState != RCC_HSI_ON))
307 if ((RCC_OscInitStruct->
HSIState) != RCC_HSI_OFF)
310 __HAL_RCC_HSI_ENABLE();
316 while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET)
318 if ((
HAL_GetTick() - tickstart) > HSI_TIMEOUT_VALUE)
330 __HAL_RCC_HSI_DISABLE();
336 while (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) != RESET)
338 if ((
HAL_GetTick() - tickstart) > HSI_TIMEOUT_VALUE)
347 if (((RCC_OscInitStruct->
OscillatorType) & RCC_OSCILLATORTYPE_LSI) == RCC_OSCILLATORTYPE_LSI)
350 assert_param(IS_RCC_LSI(RCC_OscInitStruct->
LSIState));
353 if ((RCC_OscInitStruct->
LSIState) != RCC_LSI_OFF)
356 __HAL_RCC_LSI_ENABLE();
362 while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) == RESET)
364 if ((
HAL_GetTick() - tickstart) > LSI_TIMEOUT_VALUE)
373 __HAL_RCC_LSI_DISABLE();
379 while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSIRDY) != RESET)
381 if ((
HAL_GetTick() - tickstart) > LSI_TIMEOUT_VALUE)
389 if (((RCC_OscInitStruct->
OscillatorType) & RCC_OSCILLATORTYPE_LSE) == RCC_OSCILLATORTYPE_LSE)
391 FlagStatus pwrclkchanged = RESET;
394 assert_param(IS_RCC_LSE(RCC_OscInitStruct->
LSEState));
398 if (__HAL_RCC_PWR_IS_CLK_DISABLED())
400 __HAL_RCC_PWR_CLK_ENABLE();
404 if (HAL_IS_BIT_CLR(PWR->CR, PWR_CR_DBP))
407 SET_BIT(PWR->CR, PWR_CR_DBP);
412 while (HAL_IS_BIT_CLR(PWR->CR, PWR_CR_DBP))
414 if ((
HAL_GetTick() - tickstart) > RCC_DBP_TIMEOUT_VALUE)
422 __HAL_RCC_LSE_CONFIG(RCC_OscInitStruct->
LSEState);
424 if ((RCC_OscInitStruct->
LSEState) != RCC_LSE_OFF)
430 while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET)
432 if ((
HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE)
444 while (__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) != RESET)
446 if ((
HAL_GetTick() - tickstart) > RCC_LSE_TIMEOUT_VALUE)
454 if (pwrclkchanged == SET)
456 __HAL_RCC_PWR_CLK_DISABLE();
461 assert_param(IS_RCC_PLL(RCC_OscInitStruct->
PLL.
PLLState));
462 if ((RCC_OscInitStruct->
PLL.
PLLState) != RCC_PLL_NONE)
465 if (__HAL_RCC_GET_SYSCLK_SOURCE() != RCC_CFGR_SWS_PLL)
467 if ((RCC_OscInitStruct->
PLL.
PLLState) == RCC_PLL_ON)
470 assert_param(IS_RCC_PLLSOURCE(RCC_OscInitStruct->
PLL.
PLLSource));
471 assert_param(IS_RCC_PLLM_VALUE(RCC_OscInitStruct->
PLL.
PLLM));
472 assert_param(IS_RCC_PLLN_VALUE(RCC_OscInitStruct->
PLL.
PLLN));
473 assert_param(IS_RCC_PLLP_VALUE(RCC_OscInitStruct->
PLL.
PLLP));
474 assert_param(IS_RCC_PLLQ_VALUE(RCC_OscInitStruct->
PLL.
PLLQ));
477 __HAL_RCC_PLL_DISABLE();
483 while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET)
485 if ((
HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE)
492 WRITE_REG(RCC->PLLCFGR, (RCC_OscInitStruct->
PLL.
PLLSource | \
493 RCC_OscInitStruct->
PLL.
PLLM | \
494 (RCC_OscInitStruct->
PLL.
PLLN << RCC_PLLCFGR_PLLN_Pos) | \
495 (((RCC_OscInitStruct->
PLL.
PLLP >> 1U) - 1U) << RCC_PLLCFGR_PLLP_Pos) | \
496 (RCC_OscInitStruct->
PLL.
PLLQ << RCC_PLLCFGR_PLLQ_Pos)));
498 __HAL_RCC_PLL_ENABLE();
504 while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET)
506 if ((
HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE)
515 __HAL_RCC_PLL_DISABLE();
521 while (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) != RESET)
523 if ((
HAL_GetTick() - tickstart) > PLL_TIMEOUT_VALUE)
533 if ((RCC_OscInitStruct->
PLL.
PLLState) == RCC_PLL_OFF)
540 pll_config = RCC->PLLCFGR;
541 #if defined (RCC_PLLCFGR_PLLR)
542 if (((RCC_OscInitStruct->
PLL.
PLLState) == RCC_PLL_OFF) ||
543 (READ_BIT(pll_config, RCC_PLLCFGR_PLLSRC) != RCC_OscInitStruct->
PLL.
PLLSource) ||
544 (READ_BIT(pll_config, RCC_PLLCFGR_PLLM) != (RCC_OscInitStruct->
PLL.
PLLM) << RCC_PLLCFGR_PLLM_Pos) ||
545 (READ_BIT(pll_config, RCC_PLLCFGR_PLLN) != (RCC_OscInitStruct->
PLL.
PLLN) << RCC_PLLCFGR_PLLN_Pos) ||
546 (READ_BIT(pll_config, RCC_PLLCFGR_PLLP) != (((RCC_OscInitStruct->
PLL.
PLLP >> 1U) - 1U)) << RCC_PLLCFGR_PLLP_Pos) ||
547 (READ_BIT(pll_config, RCC_PLLCFGR_PLLQ) != (RCC_OscInitStruct->
PLL.
PLLQ << RCC_PLLCFGR_PLLQ_Pos)) ||
548 (READ_BIT(pll_config, RCC_PLLCFGR_PLLR) != (RCC_OscInitStruct->
PLL.
PLLR << RCC_PLLCFGR_PLLR_Pos)))
550 if (((RCC_OscInitStruct->
PLL.
PLLState) == RCC_PLL_OFF) ||
551 (READ_BIT(pll_config, RCC_PLLCFGR_PLLSRC) != RCC_OscInitStruct->
PLL.
PLLSource) ||
552 (READ_BIT(pll_config, RCC_PLLCFGR_PLLM) != (RCC_OscInitStruct->
PLL.
PLLM) << RCC_PLLCFGR_PLLM_Pos) ||
553 (READ_BIT(pll_config, RCC_PLLCFGR_PLLN) != (RCC_OscInitStruct->
PLL.
PLLN) << RCC_PLLCFGR_PLLN_Pos) ||
554 (READ_BIT(pll_config, RCC_PLLCFGR_PLLP) != (((RCC_OscInitStruct->
PLL.
PLLP >> 1U) - 1U)) << RCC_PLLCFGR_PLLP_Pos) ||
555 (READ_BIT(pll_config, RCC_PLLCFGR_PLLQ) != (RCC_OscInitStruct->
PLL.
PLLQ << RCC_PLLCFGR_PLLQ_Pos)))
596 if (RCC_ClkInitStruct == NULL)
602 assert_param(IS_RCC_CLOCKTYPE(RCC_ClkInitStruct->
ClockType));
603 assert_param(IS_FLASH_LATENCY(FLatency));
610 if (FLatency > __HAL_FLASH_GET_LATENCY())
613 __HAL_FLASH_SET_LATENCY(FLatency);
617 if (__HAL_FLASH_GET_LATENCY() != FLatency)
624 if (((RCC_ClkInitStruct->
ClockType) & RCC_CLOCKTYPE_HCLK) == RCC_CLOCKTYPE_HCLK)
628 if (((RCC_ClkInitStruct->
ClockType) & RCC_CLOCKTYPE_PCLK1) == RCC_CLOCKTYPE_PCLK1)
630 MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, RCC_HCLK_DIV16);
633 if (((RCC_ClkInitStruct->
ClockType) & RCC_CLOCKTYPE_PCLK2) == RCC_CLOCKTYPE_PCLK2)
635 MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, (RCC_HCLK_DIV16 << 3));
639 MODIFY_REG(RCC->CFGR, RCC_CFGR_HPRE, RCC_ClkInitStruct->
AHBCLKDivider);
643 if (((RCC_ClkInitStruct->
ClockType) & RCC_CLOCKTYPE_SYSCLK) == RCC_CLOCKTYPE_SYSCLK)
645 assert_param(IS_RCC_SYSCLKSOURCE(RCC_ClkInitStruct->
SYSCLKSource));
648 if (RCC_ClkInitStruct->
SYSCLKSource == RCC_SYSCLKSOURCE_HSE)
651 if (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET)
657 else if ((RCC_ClkInitStruct->
SYSCLKSource == RCC_SYSCLKSOURCE_PLLCLK) ||
658 (RCC_ClkInitStruct->
SYSCLKSource == RCC_SYSCLKSOURCE_PLLRCLK))
661 if (__HAL_RCC_GET_FLAG(RCC_FLAG_PLLRDY) == RESET)
670 if (__HAL_RCC_GET_FLAG(RCC_FLAG_HSIRDY) == RESET)
676 __HAL_RCC_SYSCLK_CONFIG(RCC_ClkInitStruct->
SYSCLKSource);
681 while (__HAL_RCC_GET_SYSCLK_SOURCE() != (RCC_ClkInitStruct->
SYSCLKSource << RCC_CFGR_SWS_Pos))
683 if ((
HAL_GetTick() - tickstart) > CLOCKSWITCH_TIMEOUT_VALUE)
691 if (FLatency < __HAL_FLASH_GET_LATENCY())
694 __HAL_FLASH_SET_LATENCY(FLatency);
698 if (__HAL_FLASH_GET_LATENCY() != FLatency)
705 if (((RCC_ClkInitStruct->
ClockType) & RCC_CLOCKTYPE_PCLK1) == RCC_CLOCKTYPE_PCLK1)
708 MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, RCC_ClkInitStruct->
APB1CLKDivider);
712 if (((RCC_ClkInitStruct->
ClockType) & RCC_CLOCKTYPE_PCLK2) == RCC_CLOCKTYPE_PCLK2)
715 MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, ((RCC_ClkInitStruct->
APB2CLKDivider) << 3U));
719 SystemCoreClock =
HAL_RCC_GetSysClockFreq() >> AHBPrescTable[(RCC->CFGR & RCC_CFGR_HPRE) >> RCC_CFGR_HPRE_Pos];
777 GPIO_InitTypeDef GPIO_InitStruct;
779 assert_param(IS_RCC_MCO(RCC_MCOx));
780 assert_param(IS_RCC_MCODIV(RCC_MCODiv));
782 if (RCC_MCOx == RCC_MCO1)
784 assert_param(IS_RCC_MCO1SOURCE(RCC_MCOSource));
790 GPIO_InitStruct.Pin = MCO1_PIN;
791 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
792 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
793 GPIO_InitStruct.Pull = GPIO_NOPULL;
794 GPIO_InitStruct.Alternate = GPIO_AF0_MCO;
798 MODIFY_REG(RCC->CFGR, (RCC_CFGR_MCO1 | RCC_CFGR_MCO1PRE), (RCC_MCOSource | RCC_MCODiv));
801 #if defined(RCC_CFGR_MCO1EN)
802 __HAL_RCC_MCO1_ENABLE();
805 #if defined(RCC_CFGR_MCO2)
808 assert_param(IS_RCC_MCO2SOURCE(RCC_MCOSource));
814 GPIO_InitStruct.Pin = MCO2_PIN;
815 GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
816 GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
817 GPIO_InitStruct.Pull = GPIO_NOPULL;
818 GPIO_InitStruct.Alternate = GPIO_AF0_MCO;
822 MODIFY_REG(RCC->CFGR, (RCC_CFGR_MCO2 | RCC_CFGR_MCO2PRE), (RCC_MCOSource | (RCC_MCODiv << 3U)));
825 #if defined(RCC_CFGR_MCO2EN)
826 __HAL_RCC_MCO2_ENABLE();
843 *(__IO uint32_t *) RCC_CR_CSSON_BB = (uint32_t)ENABLE;
852 *(__IO uint32_t *) RCC_CR_CSSON_BB = (uint32_t)DISABLE;
888 uint32_t pllvco = 0U;
890 uint32_t sysclockfreq = 0U;
893 switch (RCC->CFGR & RCC_CFGR_SWS)
895 case RCC_CFGR_SWS_HSI:
897 sysclockfreq = HSI_VALUE;
900 case RCC_CFGR_SWS_HSE:
902 sysclockfreq = HSE_VALUE;
905 case RCC_CFGR_SWS_PLL:
909 pllm = RCC->PLLCFGR & RCC_PLLCFGR_PLLM;
910 if (__HAL_RCC_GET_PLL_OSCSOURCE() != RCC_PLLSOURCE_HSI)
913 pllvco = (uint32_t)((((uint64_t) HSE_VALUE * ((uint64_t)((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos)))) / (uint64_t)pllm);
918 pllvco = (uint32_t)((((uint64_t) HSI_VALUE * ((uint64_t)((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos)))) / (uint64_t)pllm);
920 pllp = ((((RCC->PLLCFGR & RCC_PLLCFGR_PLLP) >> RCC_PLLCFGR_PLLP_Pos) + 1U) * 2U);
922 sysclockfreq = pllvco / pllp;
927 sysclockfreq = HSI_VALUE;
945 return SystemCoreClock;
957 return (
HAL_RCC_GetHCLKFreq() >> APBPrescTable[(RCC->CFGR & RCC_CFGR_PPRE1) >> RCC_CFGR_PPRE1_Pos]);
969 return (
HAL_RCC_GetHCLKFreq() >> APBPrescTable[(RCC->CFGR & RCC_CFGR_PPRE2) >> RCC_CFGR_PPRE2_Pos]);
982 RCC_OscInitStruct->
OscillatorType = RCC_OSCILLATORTYPE_HSE | RCC_OSCILLATORTYPE_HSI | RCC_OSCILLATORTYPE_LSE | RCC_OSCILLATORTYPE_LSI;
985 if ((RCC->CR & RCC_CR_HSEBYP) == RCC_CR_HSEBYP)
987 RCC_OscInitStruct->
HSEState = RCC_HSE_BYPASS;
989 else if ((RCC->CR & RCC_CR_HSEON) == RCC_CR_HSEON)
991 RCC_OscInitStruct->
HSEState = RCC_HSE_ON;
995 RCC_OscInitStruct->
HSEState = RCC_HSE_OFF;
999 if ((RCC->CR & RCC_CR_HSION) == RCC_CR_HSION)
1001 RCC_OscInitStruct->
HSIState = RCC_HSI_ON;
1005 RCC_OscInitStruct->
HSIState = RCC_HSI_OFF;
1008 RCC_OscInitStruct->
HSICalibrationValue = (uint32_t)((RCC->CR & RCC_CR_HSITRIM) >> RCC_CR_HSITRIM_Pos);
1011 if ((RCC->BDCR & RCC_BDCR_LSEBYP) == RCC_BDCR_LSEBYP)
1013 RCC_OscInitStruct->
LSEState = RCC_LSE_BYPASS;
1015 else if ((RCC->BDCR & RCC_BDCR_LSEON) == RCC_BDCR_LSEON)
1017 RCC_OscInitStruct->
LSEState = RCC_LSE_ON;
1021 RCC_OscInitStruct->
LSEState = RCC_LSE_OFF;
1025 if ((RCC->CSR & RCC_CSR_LSION) == RCC_CSR_LSION)
1027 RCC_OscInitStruct->
LSIState = RCC_LSI_ON;
1031 RCC_OscInitStruct->
LSIState = RCC_LSI_OFF;
1035 if ((RCC->CR & RCC_CR_PLLON) == RCC_CR_PLLON)
1043 RCC_OscInitStruct->
PLL.
PLLSource = (uint32_t)(RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC);
1044 RCC_OscInitStruct->
PLL.
PLLM = (uint32_t)(RCC->PLLCFGR & RCC_PLLCFGR_PLLM);
1045 RCC_OscInitStruct->
PLL.
PLLN = (uint32_t)((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos);
1046 RCC_OscInitStruct->
PLL.
PLLP = (uint32_t)((((RCC->PLLCFGR & RCC_PLLCFGR_PLLP) + RCC_PLLCFGR_PLLP_0) << 1U) >> RCC_PLLCFGR_PLLP_Pos);
1047 RCC_OscInitStruct->
PLL.
PLLQ = (uint32_t)((RCC->PLLCFGR & RCC_PLLCFGR_PLLQ) >> RCC_PLLCFGR_PLLQ_Pos);
1061 RCC_ClkInitStruct->
ClockType = RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2;
1064 RCC_ClkInitStruct->
SYSCLKSource = (uint32_t)(RCC->CFGR & RCC_CFGR_SW);
1067 RCC_ClkInitStruct->
AHBCLKDivider = (uint32_t)(RCC->CFGR & RCC_CFGR_HPRE);
1070 RCC_ClkInitStruct->
APB1CLKDivider = (uint32_t)(RCC->CFGR & RCC_CFGR_PPRE1);
1073 RCC_ClkInitStruct->
APB2CLKDivider = (uint32_t)((RCC->CFGR & RCC_CFGR_PPRE2) >> 3U);
1076 *pFLatency = (uint32_t)(FLASH->ACR & FLASH_ACR_LATENCY);
1087 if (__HAL_RCC_GET_IT(RCC_IT_CSS))
1093 __HAL_RCC_CLEAR_IT(RCC_IT_CSS);
void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init)
Initializes the GPIOx peripheral according to the specified parameters in the GPIO_Init.
HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority)
This function configures the source of the time base. The time source is configured to have 1ms time ...
uint32_t HAL_GetTick(void)
Provides a tick value in millisecond.
HAL_StatusTypeDef HAL_RCC_DeInit(void)
Resets the RCC clock configuration to the default reset state.
HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct)
Initializes the RCC Oscillators according to the specified parameters in the RCC_OscInitTypeDef.
HAL_StatusTypeDef HAL_RCC_ClockConfig(RCC_ClkInitTypeDef *RCC_ClkInitStruct, uint32_t FLatency)
Initializes the CPU, AHB and APB busses clocks according to the specified parameters in the RCC_ClkIn...
void HAL_RCC_NMI_IRQHandler(void)
This function handles the RCC CSS interrupt request.
uint32_t HAL_RCC_GetHCLKFreq(void)
Returns the HCLK frequency.
void HAL_RCC_GetOscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct)
Configures the RCC_OscInitStruct according to the internal RCC configuration registers.
void HAL_RCC_MCOConfig(uint32_t RCC_MCOx, uint32_t RCC_MCOSource, uint32_t RCC_MCODiv)
Selects the clock source to output on MCO1 pin(PA8) or on MCO2 pin(PC9).
void HAL_RCC_EnableCSS(void)
Enables the Clock Security System.
uint32_t HAL_RCC_GetSysClockFreq(void)
Returns the SYSCLK frequency.
uint32_t HAL_RCC_GetPCLK1Freq(void)
Returns the PCLK1 frequency.
uint32_t HAL_RCC_GetPCLK2Freq(void)
Returns the PCLK2 frequency.
void HAL_RCC_GetClockConfig(RCC_ClkInitTypeDef *RCC_ClkInitStruct, uint32_t *pFLatency)
Configures the RCC_ClkInitStruct according to the internal RCC configuration registers.
void HAL_RCC_DisableCSS(void)
Disables the Clock Security System.
void HAL_RCC_CSSCallback(void)
RCC Clock Security System interrupt callback.
uint32_t HSICalibrationValue
RCC System, AHB and APB busses clock configuration structure definition.
RCC Internal/External Oscillator (HSE, HSI, LSE and LSI) configuration structure definition.
This file contains all the functions prototypes for the HAL module driver.