Introduction to STM32

Every Maple board is powered by an STM32 microcontroller (the chip which controls all of the pins). Once you’re comfortable using your Maple, you’ll probably start to get curious about what’s going on under the hood. This page is a good place to begin. It includes an overview of the STM32, and helps you make sense of the sometimes dizzying array of features, libraries, and documentation that are available to you.

The world of the STM32 is a big one, and it’s only getting bigger. With literally thousands of pages of manuals, datasheets, application notes, etc. available for every STM32 microcontroller, and a huge variety of categories and subcategories of STM32s available to choose from, it’s easy to get confused or feel daunted about getting started. Don’t panic! We’ve got your towel right here.

General Information

  • Description of the history and present state of the STM32 line. ARM Cortex-M series etc.
  • Introduction and pointers to ARM Cortex-M docs and other good books on the subject.
  • Pointers to ST reference manuals. Note that the appropriate reference manual for each board is always documented in that board’s hardware page.

STM32 Series

  • Describe families, F1 lines, etc.
  • Describe how a product name tells you what you need

ST’s Documentation

  • Classes of documentation: product flyer, datasheet, reference manual, programming manual, application note.

Registers and Register Maps

  • General purpose registers vs. peripheral registers.

Perhaps you haven’t read it in detail, but maybe you’ve at least thumbed through a few of the sections, trying to gain some understanding of what’s going on. If you’ve done that (and if you haven’t, just take our word for it), then you know that underneath the covers, everything is controlled by messing with bits in the seemingly endless collections of registers specific to every peripheral. The USARTs have data registers; (some of the) the timers have capture/compare registers, the GPIOs have output data registers, etc.

  • Peripheral register maps; how they’re duplicated for each peripheral
  • Portability concerns across series

libmaple STM32 support

  • Descriptions of libmaple’s present support for the STM32 line (i.e. currently performance-line only; update when the F2 branch is ready to merge into master etc.).