DocID 18540 Rev 1
The STM32F2xx Standard Peripheral Library covers 3 abstraction levels, and includes:
A complete register address mapping with all bits, bitfields and registers declared in C. This avoids
a cumbersome task and more important, it brings the benefits of a bug free reference mapping file,
speeding up the early project phase.
A collection of routines and data structures covering all peripheral functions (drivers with common
API). It can directly be used as a reference framework, since it also includes macros for supporting
core-related intrinsic features, common constants, and definition of data types.
A set of examples covering all available peripherals with template projects for the most common
development tools. With the appropriate hardware evaluation board, this allows to get started with
a brand-new micro within few hours.
Each driver consists of a set of functions covering all peripheral features. The development of each
driver is driven by a common API (application programming interface) which standardizes the driver
structure, the functions and the parameter names.
The driver source code is developed in „Strict ANSI-C‟ (relaxed ANSI-C for projects and example files).
It is fully documented and is MISRA-C 2004 compliant. Writing the whole library in „Strict ANSI-C‟ makes
it independent from the development tools. Only the start-up files depend on the development tools.
Thanks to the Standard Peripheral Library, low-level implementation details are transparent so that
reusing code on a different MCU requires only to reconfigure the compiler. As a result, developers can
easily migrate designs across the STM32 series to quickly bring product line extensions to market
without any redesign. In addition, the library is built around a modular architecture that makes it easy to
tailor and run it on the same MCU using hardware platforms different from ST evaluation boards.
The Standard Peripheral Library implements run-time failure detection by checking the input values for
all library functions. Such dynamic checking contributes towards enhancing the robustness of the
software. Run-time detection is suitable for user application development and debugging. It adds an
overhead which can be removed from the final application code to minimize code size and execution
speed. For more details refer to Section 1.1.5: "Run-time checking".
Since the Standard Peripheral Library is generic and covers all peripheral features, the size and/or
execution speed of the application code may not be optimized. For many applications, the library may
be used as is. However, for applications having tough constraints in terms of code size and/or execution
speed, the library drivers should be used as a reference on how to configure the peripheral and tailor
them to specific application requirements.
The firmware library user manual is structured as follows:
Document conventions, rules, architecture and overview of the Library package.
How to use and customize the Library (step by step).
Detailed description of each peripheral driver: configuration structure, functions and how to use the
provided API to build your application.
The STM32F2xx Standard Peripheral Library will be referred to as Library throughout the document,
unless otherwise specified.
Description of STM32F2xx Standard Peripheral Library