Go to the documentation of this file.
69 #include "stm32h7xx_hal.h"
80 #ifdef HAL_RCC_MODULE_ENABLED
88 #define MCO1_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE()
89 #define MCO1_GPIO_PORT GPIOA
90 #define MCO1_PIN GPIO_PIN_8
92 #define MCO2_CLK_ENABLE() __HAL_RCC_GPIOC_CLK_ENABLE()
93 #define MCO2_GPIO_PORT GPIOC
94 #define MCO2_PIN GPIO_PIN_9
314 #if defined(RCC_D1CFGR_HPRE)
358 #if defined(RCC_CR_HSEEXT)
410 uint32_t temp1_pllckcfg, temp2_pllckcfg;
413 if(RCC_OscInitStruct ==
NULL)
427 const uint32_t temp_pllckselr =
RCC->PLLCKSELR;
481 const uint32_t temp_pllckselr =
RCC->PLLCKSELR;
548 const uint32_t temp_pllckselr =
RCC->PLLCKSELR;
846 temp1_pllckcfg =
RCC->PLLCKSELR;
847 temp2_pllckcfg =
RCC->PLL1DIVR;
893 uint32_t common_system_clock;
896 if(RCC_ClkInitStruct ==
NULL)
928 #if defined (RCC_D1CFGR_D1PPRE)
946 #if defined (RCC_D2CFGR_D2PPRE1)
963 #if defined(RCC_D2CFGR_D2PPRE2)
981 #if defined(RCC_D3CFGR_D3PPRE)
999 #if defined (RCC_D1CFGR_HPRE)
1021 #if defined(RCC_D1CFGR_D1CPRE)
1081 #if defined(RCC_D1CFGR_HPRE)
1115 #if defined(RCC_D1CFGR_D1PPRE)
1133 #if defined(RCC_D2CFGR_D2PPRE1)
1151 #if defined (RCC_D2CFGR_D2PPRE2)
1169 #if defined(RCC_D3CFGR_D3PPRE)
1185 #if defined(RCC_D1CFGR_D1CPRE)
1191 #if defined(RCC_D1CFGR_HPRE)
1197 #if defined(DUAL_CORE) && defined(CORE_CM4)
1253 void HAL_RCC_MCOConfig(uint32_t RCC_MCOx, uint32_t RCC_MCOSource, uint32_t RCC_MCODiv)
1268 GPIO_InitStruct.
Pin = MCO1_PIN;
1286 GPIO_InitStruct.
Pin = MCO2_PIN;
1357 uint32_t pllp, pllsource, pllm, pllfracen, hsivalue;
1358 float_t fracn1, pllvco;
1359 uint32_t sysclockfreq;
1405 pllvco = ( (float_t)hsivalue / (float_t)pllm) * ((float_t)(uint32_t)(
RCC->PLL1DIVR &
RCC_PLL1DIVR_N1) + (fracn1/(float_t)0x2000) +(float_t)1 );
1409 pllvco = ((float_t)
HSI_VALUE / (float_t)pllm) * ((float_t)(uint32_t)(
RCC->PLL1DIVR &
RCC_PLL1DIVR_N1) + (fracn1/(float_t)0x2000) +(float_t)1 );
1414 pllvco = ((float_t)
CSI_VALUE / (float_t)pllm) * ((float_t)(uint32_t)(
RCC->PLL1DIVR &
RCC_PLL1DIVR_N1) + (fracn1/(float_t)0x2000) +(float_t)1 );
1418 pllvco = ((float_t)
HSE_VALUE / (float_t)pllm) * ((float_t)(uint32_t)(
RCC->PLL1DIVR &
RCC_PLL1DIVR_N1) + (fracn1/(float_t)0x2000) +(float_t)1 );
1422 pllvco = ((float_t)
CSI_VALUE / (float_t)pllm) * ((float_t)(uint32_t)(
RCC->PLL1DIVR &
RCC_PLL1DIVR_N1) + (fracn1/(float_t)0x2000) +(float_t)1 );
1426 sysclockfreq = (uint32_t)(float_t)(pllvco/(float_t)pllp);
1439 return sysclockfreq;
1454 uint32_t common_system_clock;
1456 #if defined(RCC_D1CFGR_D1CPRE)
1462 #if defined(RCC_D1CFGR_HPRE)
1468 #if defined(DUAL_CORE) && defined(CORE_CM4)
1486 #if defined (RCC_D2CFGR_D2PPRE1)
1505 #if defined(RCC_D2CFGR_D2PPRE2)
1526 #if defined(RCC_CR_HSEEXT)
1533 RCC_OscInitStruct->
HSEState = RCC_HSE_BYPASS_DIGITAL;
1568 #if defined(RCC_VER_X)
1591 #if defined(RCC_VER_X)
1605 #if defined(RCC_BDCR_LSEEXT)
1612 RCC_OscInitStruct->
LSEState = RCC_LSE_BYPASS_DIGITAL;
1694 #if defined(RCC_D1CFGR_D1CPRE)
1714 RCC_ClkInitStruct->
SYSCLKDivider = (uint32_t)(
RCC->CDCFGR1 & RCC_CDCFGR1_CDCPRE);
1717 RCC_ClkInitStruct->
AHBCLKDivider = (uint32_t)(
RCC->CDCFGR1 & RCC_CDCFGR1_HPRE);
1720 RCC_ClkInitStruct->
APB3CLKDivider = (uint32_t)(
RCC->CDCFGR1 & RCC_CDCFGR1_CDPPRE);
1723 RCC_ClkInitStruct->
APB1CLKDivider = (uint32_t)(
RCC->CDCFGR2 & RCC_CDCFGR2_CDPPRE1);
1726 RCC_ClkInitStruct->
APB2CLKDivider = (uint32_t)(
RCC->CDCFGR2 & RCC_CDCFGR2_CDPPRE2);
1729 RCC_ClkInitStruct->
APB4CLKDivider = (uint32_t)(
RCC->SRDCFGR & RCC_SRDCFGR_SRDPPRE);
#define assert_param(expr)
Include module's header file.
#define RCC_D2CFGR_D2PPRE2_Pos
#define RCC_D1CFGR_HPRE_Pos
#define __HAL_RCC_HSE_CONFIG(__STATE__)
Macro to configure the External High Speed oscillator (HSE).
#define IS_RCC_CSICALIBRATION_VALUE(VALUE)
#define RCC_PLLCFGR_PLL1RGE
#define RCC_PLLCKSELR_DIVM1_Pos
HAL_StatusTypeDef
HAL Status structures definition
#define RCC_CSICFGR_CSITRIM_Pos
#define RCC_D1CFGR_D1CPRE_Pos
#define RCC_PLLSOURCE_HSI
#define HSI_TIMEOUT_VALUE
#define RCC_PLLCFGR_PLL1FRACEN_Pos
#define RCC_SYSCLKSOURCE_CSI
#define IS_RCC_PLLSOURCE(SOURCE)
#define IS_RCC_PCLK2(PCLK2)
void HAL_RCC_GetOscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct)
GPIO Init structure definition
#define IS_RCC_PLLRGE_VALUE(VALUE)
RCC System, AHB and APB busses clock configuration structure definition.
#define HSE_TIMEOUT_VALUE
#define RCC_PLLCFGR_PLL1VCOSEL_Pos
#define RCC_D1CFGR_D1PPRE
#define __HAL_RCC_LSE_CONFIG(__STATE__)
Macro to configure the External Low Speed oscillator (LSE).
RCC Internal/External Oscillator (HSE, HSI, LSE and LSI) configuration structure definition.
#define __HAL_RCC_HSI_DISABLE()
#define RCC_OSCILLATORTYPE_HSI48
#define PLL_TIMEOUT_VALUE
uint32_t HSICalibrationValue
#define IS_RCC_CLOCKTYPE(CLK)
#define IS_RCC_OSCILLATORTYPE(OSCILLATOR)
#define RCC_PLLCKSELR_DIVM1_5
uint32_t HAL_RCC_GetPCLK2Freq(void)
#define __HAL_RCC_PLL_VCORANGE(__RCC_PLL1VCORange__)
Macro to select the PLL1 reference frequency range.
#define IS_RCC_MCO2SOURCE(SOURCE)
void HAL_RCC_GetClockConfig(RCC_ClkInitTypeDef *RCC_ClkInitStruct, uint32_t *pFLatency)
#define RCC_HSICFGR_HSITRIM
#define FLASH_LATENCY_DEFAULT
#define CLEAR_BIT(REG, BIT)
uint32_t HAL_GetTick(void)
Provides a tick value in millisecond.
#define RCC_PLLCKSELR_PLLSRC_HSI
#define IS_RCC_SRDPCLK1(SRDPCLK1)
#define RCC_PLLCFGR_PLL1FRACEN
#define RCC_PLLCKSELR_PLLSRC_CSI
#define IS_RCC_PCLK1(PCLK1)
void HAL_RCC_NMI_IRQHandler(void)
#define __HAL_RCC_PLL_DISABLE()
#define IS_RCC_PLLQ_VALUE(VALUE)
#define __HAL_FLASH_SET_LATENCY(__LATENCY__)
Set the FLASH Latency.
#define RCC_SYSCLKSOURCE_PLLCLK
HAL_StatusTypeDef HAL_RCC_DeInit(void)
#define IS_RCC_MCO1SOURCE(SOURCE)
#define __HAL_RCC_PLLFRACN_ENABLE()
Enables or disables Fractional Part Of The Multiplication Factor of PLL1 VCO.
#define RCC_PLLCFGR_PLL1VCOSEL
void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init)
#define __HAL_RCC_HSI_CONFIG(__STATE__)
Enable or disable peripheral bus clock when D3 domain is in DRUN.
#define RCC_CLOCKTYPE_PCLK1
#define RCC_CSICFGR_CSITRIM
#define __HAL_RCC_GET_IT(__INTERRUPT__)
Check the RCC's interrupt has occurred or not.
#define RCC_PLLCKSELR_DIVM1
#define FLASH_ACR_LATENCY
#define RCC_D2CFGR_D2PPRE1_Pos
#define HSI_VALUE
Internal High Speed oscillator (HSI) value. This value is used by the RCC HAL module to compute the s...
#define __HAL_FLASH_GET_LATENCY()
Get the FLASH Latency.
#define __HAL_RCC_PLLCLKOUT_ENABLE(__RCC_PLL1ClockOut__)
Enables or disables each clock output (PLL_P_CLK, PLL_Q_CLK, PLL_R_CLK)
#define RCC_PLL1DIVR_P1_Pos
#define CSI_VALUE
Internal oscillator (CSI) default value. This value is the default CSI value after Reset.
uint32_t HAL_GetREVID(void)
Returns the device revision identifier.
#define IS_RCC_PLLVCO_VALUE(VALUE)
#define IS_RCC_CDPCLK1(CDPCLK1)
#define RCC_CFGR_SWS_PLL1
HAL_StatusTypeDef HAL_RCC_ClockConfig(RCC_ClkInitTypeDef *RCC_ClkInitStruct, uint32_t FLatency)
#define __HAL_RCC_CLEAR_IT(__INTERRUPT__)
Clear the RCC's interrupt pending bits (Perform Byte access to RCC_CIR[23:16] bits to clear the selec...
#define MODIFY_REG(REG, CLEARMASK, SETMASK)
#define RCC_OSCILLATORTYPE_HSI
#define RCC_CLOCKTYPE_D3PCLK1
#define GPIO_SPEED_FREQ_VERY_HIGH
HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct)
#define CLOCKSWITCH_TIMEOUT_VALUE
#define RCC_HSICFGR_HSITRIM_Pos
#define RCC_PLLSOURCE_CSI
#define RCC_PLLCKSELR_DIVM2_5
void HAL_RCC_DisableCSS(void)
#define RCC_PLL1DIVR_R1_Pos
#define RCC_CLOCKTYPE_PCLK2
#define RCC_OSCILLATORTYPE_LSE
#define IS_RCC_SYSCLKSOURCE(SOURCE)
#define IS_RCC_MCODIV(DIV)
#define READ_BIT(REG, BIT)
#define RCC_PLL1DIVR_Q1_Pos
#define IS_RCC_HCLK(HCLK)
#define RCC_PLLSOURCE_HSE
#define RCC_D1CFGR_D1CPRE
#define IS_RCC_PLLN_VALUE(VALUE)
#define HSI48_TIMEOUT_VALUE
#define IS_RCC_PLLR_VALUE(VALUE)
#define RCC_CLOCKTYPE_SYSCLK
#define __HAL_RCC_CSI_CALIBRATIONVALUE_ADJUST(__CSICalibrationValue__)
Macro Adjusts the Internal oscillator (CSI) calibration value.
#define RCC_LSE_TIMEOUT_VALUE
void HAL_RCC_MCOConfig(uint32_t RCC_MCOx, uint32_t RCC_MCOSource, uint32_t RCC_MCODiv)
uint32_t HAL_RCC_GetHCLKFreq(void)
#define RCC_D3CFGR_D3PPRE
#define IS_RCC_PLLFRACN_VALUE(VALUE)
#define RCC_CLOCKTYPE_HCLK
#define __HAL_RCC_PLL_ENABLE()
Macros to enable or disable the main PLL.
#define __HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(__HSICalibrationValue__)
Macro to adjust the Internal High Speed oscillator (HSI) calibration value.
#define __HAL_RCC_HSI48_ENABLE()
Macro to enable or disable the Internal High Speed oscillator for USB (HSI48).
#define __HAL_RCC_LSI_ENABLE()
Macros to enable or disable the Internal Low Speed oscillator (LSI).
#define IS_RCC_HSI48(HSI48)
uint32_t CSICalibrationValue
#define RCC_D2CFGR_D2PPRE1
uint32_t HAL_RCC_GetPCLK1Freq(void)
#define RCC_PLL1DIVR_N1_Pos
#define __HAL_RCC_GET_FLAG(__FLAG__)
#define RCC_PLLCKSELR_PLLSRC
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_RCC_GetSysClockFreq(void)
#define RCC_FLAG_HSI48RDY
#define IS_FLASH_LATENCY(LATENCY)
#define IS_RCC_SYSCLK(SYSCLK)
#define __HAL_RCC_LSI_DISABLE()
#define __HAL_RCC_PLLFRACN_DISABLE()
void HAL_RCC_CCSCallback(void)
#define RCC_DBP_TIMEOUT_VALUE
#define RCC_PLLCKSELR_PLLSRC_HSE
#define RCC_SYSCLKSOURCE_HSE
#define HSE_VALUE
Adjust the value of External High Speed oscillator (HSE) used in your application....
#define __HAL_RCC_GET_SYSCLK_SOURCE()
Macro to get the clock source used as system clock.
#define RCC_OSCILLATORTYPE_HSE
#define WRITE_REG(REG, VAL)
#define RCC_CLOCKTYPE_D1PCLK1
#define RCC_PLLCKSELR_DIVM3_5
#define RCC_D2CFGR_D2PPRE2
#define RCC_PLL1FRACR_FRACN1
#define RCC_OSCILLATORTYPE_CSI
#define SET_BIT(REG, BIT)
#define LSI_TIMEOUT_VALUE
#define __HAL_RCC_CSI_ENABLE()
Macros to enable or disable the Internal oscillator (CSI).
#define IS_RCC_PLLM_VALUE(VALUE)
#define IS_RCC_HSICALIBRATION_VALUE(VALUE)
#define __HAL_RCC_HSI48_DISABLE()
#define __HAL_RCC_PLL_VCIRANGE(__RCC_PLL1VCIRange__)
Macro to select the PLL1 reference frequency range.
#define RCC_HSICFGR_HSITRIM_6
#define RCC_PLL1FRACR_FRACN1_Pos
#define __HAL_RCC_GET_HSI_DIVIDER()
Macro to get the HSI divider.
#define IS_RCC_PLLP_VALUE(VALUE)
#define __HAL_RCC_CSI_DISABLE()
#define RCC_OSCILLATORTYPE_LSI
#define __HAL_RCC_PLLFRACN_CONFIG(__RCC_PLL1FRACN__)
Macro to configures the main PLL clock Fractional Part Of The Multiplication Factor.
#define __HAL_RCC_PLL_CONFIG(__RCC_PLLSource__, __PLLM__, __PLLN__, __PLLP__, __PLLQ__)
Macro to configure the main PLL clock source, multiplication and division factors.
#define CSI_TIMEOUT_VALUE
void HAL_RCC_EnableCSS(void)
const uint8_t D1CorePrescTable[16]