STM32Cube  Version 2.0
Create Projects for STM32F2 Series with STM32Cube HAL and STM32CubeMX
 All Files Pages
Clock and System Configuration

The following section explains the setup for the STM32F2 Series. The settings are valid for STM3220G-EVAL. However the configuration is similar for other target hardware.

SystemClock_Config function in 'main.c'

The User Code Template STM32Cube HAL 'main' contains the following SystemClock_Config function which provides valid settings for STM3220G-EVAL.

/*
System Clock Configuration
System Clock source = PLL (HSE)
SYSCLK(Hz) = 120000000
HCLK(Hz) = 120000000
AHB Prescaler = 1
APB1 Prescaler = 4
APB2 Prescaler = 2
HSE Frequency(Hz) = 25000000
PLL_M = 25
PLL_N = 240
PLL_P = 2
PLL_Q = 5
VDD(V) = 3.3
Flash Latency(WS) = 3
*/
static void SystemClock_Config(void) {
RCC_ClkInitTypeDef RCC_ClkInitStruct;
RCC_OscInitTypeDef RCC_OscInitStruct;
/* Enable HSE Oscillator and activate PLL with HSE as source */
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
RCC_OscInitStruct.HSEState = RCC_HSE_ON;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
RCC_OscInitStruct.PLL.PLLM = 25;
RCC_OscInitStruct.PLL.PLLN = 240;
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
RCC_OscInitStruct.PLL.PLLQ = 5;
HAL_RCC_OscConfig(&RCC_OscInitStruct);
/* Select PLL as system clock source and configure the HCLK, PCLK1 and PCLK2
clocks dividers */
RCC_ClkInitStruct.ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2);
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;
HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_3);
}

'stm32f2xx_hal_conf.h' STM32Cube HAL Configuration File

The stm32f2xx_hal_conf.h file of the STM32Cube Framework - Classic is modified so that components that are selected in the MDK Manage Run-Time Environment window are automatically added. The settings are valid for STM3220G-EVAL.

For other target hardware, modifications might be required to the section starting with:

/* ########################## HSE/HSI Values adaptation ##################### */

Define Symbols for STM32Cube Framework

Some configuration settings for the STM32Cube software framework are provided as compiler define settings. These are typically entered in MDK in Project - Options - C/C++ under Preprocessor Symbols.

The following table lists the #define settings. STM32Cube provides several other configuration settings.

#define Description
HSE_VALUE Frequency of the external oscillator (HSE) expressed in Hz.
DATA_IN_ExtSRAM Setup the external memory controller for STM322xG_EVAL on-board SRAM in system_stm32f2xx.c before variable initialization and the 'main' function. It configures the external SRAM as general purpose data memory (including heap and stack).