STM32F4xx HAL Documentation
Hardware Abstraction Layer for STM32F4 familiy
Loading...
Searching...
No Matches
Peripheral Control functions

RCC clocks control functions. More...

Collaboration diagram for Peripheral Control functions:

Functions

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.
 
void HAL_RCC_DisableCSS (void)
 Disables the Clock Security System.
 
uint32_t HAL_RCC_GetSysClockFreq (void)
 Returns the SYSCLK frequency.
 
uint32_t HAL_RCC_GetHCLKFreq (void)
 Returns the HCLK frequency.
 
uint32_t HAL_RCC_GetPCLK1Freq (void)
 Returns the PCLK1 frequency.
 
uint32_t HAL_RCC_GetPCLK2Freq (void)
 Returns the PCLK2 frequency.
 
void HAL_RCC_GetOscConfig (RCC_OscInitTypeDef *RCC_OscInitStruct)
 Configures the RCC_OscInitStruct according to the internal RCC configuration registers.
 
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_NMI_IRQHandler (void)
 This function handles the RCC CSS interrupt request.
 
void HAL_RCC_CSSCallback (void)
 RCC Clock Security System interrupt callback.
 

Detailed Description

RCC clocks control functions.

 ===============================================================================
                      ##### Peripheral Control functions #####
 ===============================================================================
    [..]
    This subsection provides a set of functions allowing to control the RCC Clocks
    frequencies.

Function Documentation

◆ HAL_RCC_MCOConfig()

void HAL_RCC_MCOConfig ( uint32_t RCC_MCOx,
uint32_t RCC_MCOSource,
uint32_t RCC_MCODiv )

#include <stm32f4xx_hal_rcc.h>

Selects the clock source to output on MCO1 pin(PA8) or on MCO2 pin(PC9).

Note
PA8/PC9 should be configured in alternate function mode.
Parameters
RCC_MCOxspecifies the output direction for the clock source. This parameter can be one of the following values:
  • RCC_MCO1: Clock source to output on MCO1 pin(PA8).
  • RCC_MCO2: Clock source to output on MCO2 pin(PC9).
RCC_MCOSourcespecifies the clock source to output. This parameter can be one of the following values:
  • RCC_MCO1SOURCE_HSI: HSI clock selected as MCO1 source
  • RCC_MCO1SOURCE_LSE: LSE clock selected as MCO1 source
  • RCC_MCO1SOURCE_HSE: HSE clock selected as MCO1 source
  • RCC_MCO1SOURCE_PLLCLK: main PLL clock selected as MCO1 source
  • RCC_MCO2SOURCE_SYSCLK: System clock (SYSCLK) selected as MCO2 source
  • RCC_MCO2SOURCE_PLLI2SCLK: PLLI2S clock selected as MCO2 source, available for all STM32F4 devices except STM32F410xx
  • RCC_MCO2SOURCE_I2SCLK: I2SCLK clock selected as MCO2 source, available only for STM32F410Rx devices
  • RCC_MCO2SOURCE_HSE: HSE clock selected as MCO2 source
  • RCC_MCO2SOURCE_PLLCLK: main PLL clock selected as MCO2 source
RCC_MCODivspecifies the MCOx prescaler. This parameter can be one of the following values:
  • RCC_MCODIV_1: no division applied to MCOx clock
  • RCC_MCODIV_2: division by 2 applied to MCOx clock
  • RCC_MCODIV_3: division by 3 applied to MCOx clock
  • RCC_MCODIV_4: division by 4 applied to MCOx clock
  • RCC_MCODIV_5: division by 5 applied to MCOx clock
Note
For STM32F410Rx devices to output I2SCLK clock on MCO2 you should have at last one of the SPI clocks enabled (SPI1, SPI2 or SPI5).
Return values
None

Definition at line 775 of file stm32f4xx_hal_rcc.c.

References __MCO1_CLK_ENABLE, __MCO2_CLK_ENABLE, GPIO_InitTypeDef::Alternate, assert_param, GPIO_AF0_MCO, GPIO_MODE_AF_PP, GPIO_NOPULL, GPIO_SPEED_FREQ_VERY_HIGH, HAL_GPIO_Init(), IS_RCC_MCO, IS_RCC_MCO1SOURCE, IS_RCC_MCO2SOURCE, IS_RCC_MCODIV, MCO1_GPIO_PORT, MCO1_PIN, MCO2_GPIO_PORT, MCO2_PIN, GPIO_InitTypeDef::Mode, GPIO_InitTypeDef::Pin, GPIO_InitTypeDef::Pull, RCC_MCO1, and GPIO_InitTypeDef::Speed.

◆ HAL_RCC_EnableCSS()

void HAL_RCC_EnableCSS ( void )

#include <stm32f4xx_hal_rcc.h>

Enables the Clock Security System.

Note
If a failure is detected on the HSE oscillator clock, this oscillator is automatically disabled and an interrupt is generated to inform the software about the failure (Clock Security System Interrupt, CSSI), allowing the MCU to perform rescue operations. The CSSI is linked to the Cortex-M4 NMI (Non-Maskable Interrupt) exception vector.
Return values
None

Definition at line 841 of file stm32f4xx_hal_rcc.c.

References RCC_CR_CSSON_BB.

◆ HAL_RCC_DisableCSS()

void HAL_RCC_DisableCSS ( void )

#include <stm32f4xx_hal_rcc.h>

Disables the Clock Security System.

Return values
None

Definition at line 850 of file stm32f4xx_hal_rcc.c.

References RCC_CR_CSSON_BB.

◆ HAL_RCC_GetSysClockFreq()

__weak uint32_t HAL_RCC_GetSysClockFreq ( void )

#include <stm32f4xx_hal_rcc.h>

Returns the SYSCLK frequency.

Note
The system frequency computed by this function is not the real frequency in the chip. It is calculated based on the predefined constant and the selected clock source:
If SYSCLK source is HSI, function returns values based on HSI_VALUE(*)
If SYSCLK source is HSE, function returns values based on HSE_VALUE(**)
If SYSCLK source is PLL, function returns values based on HSE_VALUE(**) or HSI_VALUE(*) multiplied/divided by the PLL factors.
(*) HSI_VALUE is a constant defined in stm32f4xx_hal_conf.h file (default value 16 MHz) but the real value may vary depending on the variations in voltage and temperature.
(**) HSE_VALUE is a constant defined in stm32f4xx_hal_conf.h file (default value 25 MHz), user has to ensure that HSE_VALUE is same as the real frequency of the crystal used. Otherwise, this function may have wrong result.
The result of this function could be not correct when using fractional value for HSE crystal.
This function can be used by the user application to compute the baudrate for the communication peripherals or configure other parameters.
Each time SYSCLK changes, this function must be called to update the right SYSCLK value. Otherwise, any configuration based on this function will be incorrect.
Return values
SYSCLKfrequency

Definition at line 885 of file stm32f4xx_hal_rcc.c.

References __HAL_RCC_GET_PLL_OSCSOURCE, HSE_VALUE, HSI_VALUE, and RCC_PLLSOURCE_HSI.

Referenced by HAL_RCC_ClockConfig().

◆ HAL_RCC_GetHCLKFreq()

uint32_t HAL_RCC_GetHCLKFreq ( void )

#include <stm32f4xx_hal_rcc.h>

Returns the HCLK frequency.

Note
Each time HCLK changes, this function must be called to update the right HCLK value. Otherwise, any configuration based on this function will be incorrect.
The SystemCoreClock CMSIS variable is used to store System Clock Frequency and updated within this function
Return values
HCLKfrequency

Definition at line 943 of file stm32f4xx_hal_rcc.c.

Referenced by HAL_ETH_SetMDIOClockRange(), HAL_PCD_IRQHandler(), HAL_RCC_GetPCLK1Freq(), and HAL_RCC_GetPCLK2Freq().

◆ HAL_RCC_GetPCLK1Freq()

uint32_t HAL_RCC_GetPCLK1Freq ( void )

#include <stm32f4xx_hal_rcc.h>

Returns the PCLK1 frequency.

Note
Each time PCLK1 changes, this function must be called to update the right PCLK1 value. Otherwise, any configuration based on this function will be incorrect.
Return values
PCLK1frequency

Definition at line 954 of file stm32f4xx_hal_rcc.c.

References HAL_RCC_GetHCLKFreq().

Referenced by HAL_I2C_Init(), HAL_InitTick(), HAL_SMBUS_Init(), IRDA_SetConfig(), SMARTCARD_SetConfig(), UART_SetConfig(), and USART_SetConfig().

◆ HAL_RCC_GetPCLK2Freq()

uint32_t HAL_RCC_GetPCLK2Freq ( void )

#include <stm32f4xx_hal_rcc.h>

Returns the PCLK2 frequency.

Note
Each time PCLK2 changes, this function must be called to update the right PCLK2 value. Otherwise, any configuration based on this function will be incorrect.
Return values
PCLK2frequency

Definition at line 966 of file stm32f4xx_hal_rcc.c.

References HAL_RCC_GetHCLKFreq().

Referenced by IRDA_SetConfig(), SMARTCARD_SetConfig(), UART_SetConfig(), and USART_SetConfig().

◆ HAL_RCC_GetOscConfig()

◆ HAL_RCC_GetClockConfig()

void HAL_RCC_GetClockConfig ( RCC_ClkInitTypeDef * RCC_ClkInitStruct,
uint32_t * pFLatency )

#include <stm32f4xx_hal_rcc.h>

Configures the RCC_ClkInitStruct according to the internal RCC configuration registers.

Parameters
RCC_ClkInitStructpointer to an RCC_ClkInitTypeDef structure that will be configured.
pFLatencyPointer on the Flash Latency.
Return values
None

Definition at line 1058 of file stm32f4xx_hal_rcc.c.

References RCC_ClkInitTypeDef::AHBCLKDivider, RCC_ClkInitTypeDef::APB1CLKDivider, RCC_ClkInitTypeDef::APB2CLKDivider, RCC_ClkInitTypeDef::ClockType, RCC_CLOCKTYPE_HCLK, RCC_CLOCKTYPE_PCLK1, RCC_CLOCKTYPE_PCLK2, RCC_CLOCKTYPE_SYSCLK, and RCC_ClkInitTypeDef::SYSCLKSource.

Referenced by HAL_InitTick().

◆ HAL_RCC_NMI_IRQHandler()

void HAL_RCC_NMI_IRQHandler ( void )

#include <stm32f4xx_hal_rcc.h>

This function handles the RCC CSS interrupt request.

Note
This API should be called under the NMI_Handler().
Return values
None

Definition at line 1084 of file stm32f4xx_hal_rcc.c.

References __HAL_RCC_CLEAR_IT, __HAL_RCC_GET_IT, HAL_RCC_CSSCallback(), and RCC_IT_CSS.

◆ HAL_RCC_CSSCallback()

__weak void HAL_RCC_CSSCallback ( void )

#include <stm32f4xx_hal_rcc.h>

RCC Clock Security System interrupt callback.

Return values
None

Definition at line 1101 of file stm32f4xx_hal_rcc.c.

Referenced by HAL_RCC_NMI_IRQHandler().