Embedded track
STM32

An STM32 course for people who already know an Arduino

The STM32F411, a Cortex-M4 at 84 MHz, where a pin is a port and a number and every peripheral starts with its clock off.

FreeIn your browser2 courses, 12 lessons, about 11 hours
Start freeThe LED that is on when the pin is lowSee the course
Overview

How you will learn it

STM32 chips are in a huge share of professional products, which makes them the natural next board after an Arduino. They are also stricter: you turn on a peripheral's clock before you use it, and pins are named by port.

Embedded on the STM32F411 walks through that change with familiar projects: a blink, a button, a chaser on one port, PWM from a timer and a serial console. Under the hood then shows the same register ideas on the Uno.

Outcomes

What you will learn

  • Drive an active-low LED and read a button on an STM32 port.
  • Run six pins from one port and generate PWM from a hardware timer.
  • Talk to the board over a serial console.
  • Understand clocks, ports and timers well enough to read the reference manual.
Your route

The courses and lessons to take

Every lesson opens in the editor right away, signed in or not, and the simulator checks each step.

  1. Step 1 · 6 lessons · 6 h

    Embedded on the STM32F411

    The whole STM32 course.

    1. The LED that is on when the pin is lowThe Black Pill wires its LED between the rail and the pin, so the pin has to go low to light it. Active low, and why so much hardware is built that way.
    2. Six pins on one portA dot along PA1 to PA6, from an array of pin numbers. What a port is, and why six pins on the same one can be written in a single instruction.
    3. PWM from a timerPA0 is TIM5 channel 1, and once it is set up the hardware holds the brightness on its own. Prescaler, reload, and the compare value.
    4. The board talks and listensUSART1 on PA9 and PA10, the monitor, and an echo driven from a receive interrupt. What printing costs and why the receive side is different.
    Every lesson in the course
  2. Step 2 · 6 lessons · 5 h

    Under the hood

    The same register ideas, taught slowly on the Uno.

    1. DDR, PORT and PINThe three registers behind every digital pin: count in binary on three lamps with one write to PORTB, turn on a pull-up through PORTD, and read a button straight out of PIND.
    2. Timers by handTimer 1 set up register by register: a prescaler, CTC mode and OCR1A for a match every 500 ms, the compare flag polled and cleared by hand, and no millis() anywhere.
    Every lesson in the course
Keep going

Guides and tools on the same subject

Track

Embedded track

Arduino, ESP32, Raspberry Pi Pico and STM32: pins, timing, buses, motors, WiFi, registers and debugging, every lesson checked on a simulated board.

See the whole track
Questions

Questions people ask

Is STM32 harder than Arduino?

A little. There is more setup, mostly clocks and pin modes, but the ideas are the same. Knowing an Arduino first makes the course much easier.

Which STM32 board does the course use?

The STM32F411, the chip on the Black Pill and the Nucleo-F411RE. The code carries over to other STM32 parts with small changes.

Do I need ST's tools installed?

No. Code compiles and runs in your browser on a simulated STM32F411.