A template peripheral library for the STM32 microcontrollers, written in C++.
Switch branches/tags
Nothing to show
Clone or download


 * Copyright (C) 2012 Jorge Aparicio <jorge.aparicio.r@gmail.com>
 * This file is part of libstm32pp.
 * libstm32pp is free software: you can redistribute it and/or modify it under
 * the terms of the GNU Lesser General Public License as published by the Free
 * Software Foundation, either version 3 of the License, or (at your option)
 * any later version.
 * libstm32pp is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
 * for more details.
 * You should have received a copy of the GNU Lesser General Public License
 * along with libstm32pp. If not, see <http://www.gnu.org/licenses/>.


libstm32pp is a template peripheral library for the STM32F1/STM32F2/STM32F4
family of microcontrollers(uC).

This library is written in C++, and uses heavily template metaprogramming,
statics assertions, templates and enumerators.

All these features provide a memory efficient implementation, compile-time
error-checking and strong typing.


There is no installation, this is a header file only library.

To use this library, simply link the libstm32pp/include folder to your source.

The following files are important:

+ device_select.hpp     Here the microcontroller family must be selected.
                        (uncomment the family you are going to use)

+ clock.hpp             Here the uC clocks can be configured.
                        (be sure to call clk::initialize() as soon as possible
                         in your program)
+ interrupt_cpp.hpp     This is actually a source file that configures the uC
                        (include this file in a source file .cpp)
+ system_call_cpp.hpp   This is actually a source file that implements the
                        newlib hardware dependant functions.
                        (include this file in a source file .cpp)

Check the "demo" folder for examples.

An editor with auto-complete feature is highly recommended for development using
this library.

If you need an open source framework for development of these families of uCs, 
you should check the bareCortexM project:


It's a framework based on the Eclipse IDE and the GCC toolchain, for bare metal
development of Cortex™ M Series processors.


This project is licensed under the:

GNU Lesser General Public License (LGPL) version 3.

See COPYING.GPL3.txt and COPYING.LGPL3.txt for more details. 


Cortex™ is a trademark of ARM Limited. ST, STM32 are trademarks of 
STMicroelectronics. All other trademarks are property of their respective