Macros | Functions | Variables
system_stm32f4xx.c File Reference

CMSIS Cortex-M4 Device Peripheral Access Layer System Source File. This file contains the system clock configuration for STM32F4xx devices, and is generated by the clock configuration tool stm32f4xx_Clock_Configuration_V1.0.0.xls. More...

#include "stm32f4xx.h"
Include dependency graph for system_stm32f4xx.c:

Go to the source code of this file.

Macros

#define PLL_M   8
 
#define PLL_N   336
 
#define PLL_P   2
 
#define PLL_Q   7
 
#define VECT_TAB_OFFSET   0x00
 

Functions

static void SetSysClock (void)
 Configures the System clock source, PLL Multiplier and Divider factors, AHB/APBx prescalers and Flash settings This function should be called only once the RCC clock configuration is reset to the default reset state (done in SystemInit() function). More...
 
void SystemCoreClockUpdate (void)
 Update SystemCoreClock variable according to Clock Register Values. The SystemCoreClock variable contains the core clock (HCLK), it can be used by the user application to setup the SysTick timer or configure other parameters. More...
 
void SystemInit (void)
 Setup the microcontroller system Initialize the Embedded Flash Interface, the PLL and update the SystemFrequency variable. More...
 

Variables

__I uint8_t AHBPrescTable [16] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 6, 7, 8, 9}
 
uint32_t SystemCoreClock = 168000000
 

Detailed Description

CMSIS Cortex-M4 Device Peripheral Access Layer System Source File. This file contains the system clock configuration for STM32F4xx devices, and is generated by the clock configuration tool stm32f4xx_Clock_Configuration_V1.0.0.xls.

Author
MCD Application Team
Version
V1.0.0
Date
19-September-2011
  1. This file provides two functions and one global variable to be called from user application:
    • SystemInit(): Setups the system clock (System clock source, PLL Multiplier and Divider factors, AHB/APBx prescalers and Flash settings), depending on the configuration made in the clock xls tool. This function is called at startup just after reset and before branch to main program. This call is made inside the "startup_stm32f4xx.s" file.
    • SystemCoreClock variable: Contains the core clock (HCLK), it can be used by the user application to setup the SysTick timer or configure other parameters.
    • SystemCoreClockUpdate(): Updates the variable SystemCoreClock and must be called whenever the core clock is changed during program execution.
  2. After each device reset the HSI (16 MHz) is used as system clock source. Then SystemInit() function is called, in "startup_stm32f4xx.s" file, to configure the system clock before to branch to main program.
  3. If the system clock source selected by user fails to startup, the SystemInit() function will do nothing and HSI still used as system clock source. User can add some code to deal with this issue inside the SetSysClock() function.
  4. The default value of HSE crystal is set to 8 MHz, refer to "HSE_VALUE" define in "stm32f4xx.h" file. When HSE is used as system clock source, directly or through PLL, and you are using different crystal you have to adapt the HSE value to your own configuration.

5. This file configures the system clock as follows:

=============================================================================

Supported STM32F4xx device revision | Rev A

System Clock source | PLL (HSE)

SYSCLK(Hz) | 168000000

HCLK(Hz) | 168000000

AHB Prescaler | 1

APB1 Prescaler | 4

APB2 Prescaler | 2

HSE Frequency(Hz) | 8000000

PLL_M | 8

PLL_N | 336

PLL_P | 2

PLL_Q | 7

PLLI2S_N | NA

PLLI2S_R | NA

I2S input clock | NA

VDD(V) | 3.3

High Performance mode | Enabled

Flash Latency(WS) | 5

Prefetch Buffer | OFF

Instruction cache | ON

Data cache | ON

Require 48MHz for USB OTG FS, | Enabled

SDIO and RNG clock |

=============================================================================

Attention

THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.

© COPYRIGHT 2011 STMicroelectronics

Definition in file system_stm32f4xx.c.



rosflight_firmware
Author(s): Daniel Koch , James Jackson
autogenerated on Thu Apr 15 2021 05:07:53