STM32F30xx Standard Peripheral Library
Figure 3: Library folder structure
CMSIS subfolder
This subfolder contains the STM32F30/31xx and Cortex-M4 CMSIS files:
ï‚· Cortex-M CMSIS files containing name definitions, address definitions and helper
functions to access Cortex-M4 core registers and peripherals. It defines also a device
independent interface for RTOS kernels that includes debug channel definitions.
ï‚· STM32F30/31xx CMSIS files consist of:
ï€ stm32f30x.h: this file contains the definitions of all peripheral registers, bits, and
memory mapping for STM32F30/31xx devices. It is the unique include file used in
the application programmer C source code, usually in the main.c.
ï€ system_stm32f30x.c/.h: this file contains the system clock configuration for
STM32F30/31xx devices. It exports SystemInit() function which sets up the
system clock source, PLL multiplier and divider factors, AHB/APBx prescalers
and Flash settings. This function is called at startup just after reset and before
connecting to the main program. The call is made inside the startup_stm32f30x.s
file.
ï€ startup_stm32f30x.s: this file contains the Cortex-M4 startup code and interrupt
vectors for all STM32F30/31xx device interrupt handlers.
STM32F30xx_StdPeriph_Driver subfolder
This subfolder contains all the subdirectories and files that make up the core of the library.
They do not need to be modified by the user:
ï‚· inc subfolder contains the peripheral drivers header files.
 src subfolder contains the peripheral drivers source files. 󳘪
Each peripheral has a source code file, stm32f30x_ppp.c, and a header file,
stm32f30x_ppp.h. The stm32f30x_ppp.c file contains all the firmware functions required to
use the PPP peripheral.󳘪
The library files are listed and described in details in the following tables.󳘪