STM32 Bringup


Getting started with a micro-controller usually means picking up a board, an IDE, some RTOS or a set of libraries. Depending of your level of experience, your budget and the solutions you select, the learning curve may be a steep one and what you will learn can be very limited if you end up cornered in a sandbox with no understanding of what’s going on under the hood.

Commercial solutions and mature open source projects are a must if you want to develop products with some level of quality. Unfortunately their complexity is high because they have to satisfy complex requirements. Their documentation and source code when available are often hard to navigate, out of date or just not addressing what you need to learn.

Starting from scratch, on the other hand, is not something often documented and when it is, it is usually after the fact. So if you want to learn how to do it you need to catch the opportunity to watch someone going through the steps and explaining what’s going on.

I will try to capture here my own “STM32 bring up” journey using a step by step approach, writing down the problems faced and decisions taken while evolving simple projects.

Part I: Bring it up!

I proceed by small incremental steps that are easy to reproduce and simple enough to adapt to a variant of the micro-controller or a different board layout.

Part II: Let’s talk!

It’s time to move to a more talkative interface so that the board not only winks but also speaks. Again I will go through several steps to get to a working asynchronous serial communication.

Part III: Sensors! So hot! So wet!


Factory-programmed values.

© 2020-2021 Renaud Fivet