STM32 C++ Template Peripheral Library