STM32 Programming· Live
STM32 for beginners · 8 lessons free

STM32 without the guesswork.

After Arduino, CubeMX, HAL and the reference manual can feel like a wall. These 16 short lessons take you from a blinking LED to PWM, timer interrupts and UART on an STM32 board, with every step, all the code, and what you should see at the end. Basic C is enough.

8 free lessons with video · $20 once for the rest · 14-day money-back guarantee

Rated 4.9/5 by students (11 reviews) · By Yerke, Steppeschool · Steppe School on YouTube: 8,000+ subscribers, 900,000+ views

Is it for you?

Made for your first steps with STM32

For you if

  • you know basic C, maybe from Arduino, and want to move to STM32
  • you need STM32 for a university project or your first embedded job
  • you tried tutorials that skipped a step, and got stuck

Not for you if

  • you already set up timers, PWM and UART with the HAL without help
  • you are looking for an RTOS, DMA or USB course
What you'll be able to do

From an empty project to a board that talks to your PC

  • Start a project

    Create an STM32 project in CubeMX, blink the LED and read the button.

  • React instantly

    Let an interrupt tell the CPU when the button changes.

  • Keep exact time

    Count time with a hardware timer, and run code every millisecond with a timer interrupt.

  • Dim with PWM

    Fade the LED smoothly with a hardware PWM signal.

  • Talk to your PC

    Send text from the board to your computer over UART.

  • Understand the ARM core

    Learn core ARM Cortex-M concepts: interrupts and the NVIC, the memory map, the buses and the CPU registers, and where ST's documents explain each one.

The end result of the course, in 22 seconds.

Why it works

Every lesson tells you what you should see

Most tutorials skip a click, or leave you with code that builds but does nothing. Here each lesson ends with a check, so you know it works before you move on.

  1. Watch

    A short video and the idea in plain words, with a picture first.

  2. Do

    Numbered steps with screenshots, and code you copy with one click.

  3. Check

    What you should see, and the usual fixes if you don't.

Still stuck? Ask under the lesson: I answer myself, usually within a day and often within a few hours.

Who teaches it

Hi, I'm Yerke

Yerke, founder of Steppeschool

I'm the founder of Steppeschool. I hold a Bachelor's degree in Electrical Engineering, and a Master's and a PhD in Robotics/Mechatronics, and I work as an automation engineer. In my free time I teach electronics, embedded programming and robotics.

My free tutorials are on the Steppe School YouTube channel (over 8,000 subscribers, 900,000+ views). I also teach the Steppeschool courses on STM32 attitude estimation, a quadcopter flight controller, a self-balancing robot, CAN bus and a custom bootloader.

Reviews

What students say

4.9 out of 5 from 11 student reviews.

The lessons

Eight chapters, 16 lessons

Chapters 0–3 are free: setup, GPIO, interrupts, clocks and timers. Chapters 4–7 are where the timers do real work: PWM, timer interrupts, UART, and a look inside the chip.

0

STM32 setup: CubeIDE and CubeMX free

What the course covers, and the two free tools you install.

  1. 0.1Introduction: what you will learn
  2. 0.2Install STM32CubeMX and STM32CubeIDE
1

GPIO: the first project free

Create a project for the NUCLEO-F401RE, blink the LED and read the button.

  1. 1.1GPIO output: blink the LED
  2. 1.2GPIO input: read the button
2

External interrupts free

Let the button tell the CPU when it changes, instead of checking it all the time.

  1. 2.1External interrupt: react to the button
3

Clocks and timers free

Where the chip's speed comes from, and a timer that counts time for you.

  1. 3.1Clocks: where the speed comes from
  2. 3.2How a timer counts
  3. 3.3Start a timer and read its counter
4

PWM full course

Use a timer to dim the LED smoothly.

  1. 4.1What PWM is, and how a timer makes it
  2. 4.2Dim the LED with PWM
5

Timer interrupts full course

Run code at an exact rate, with no delay in the loop.

  1. 5.1How a timer update interrupt works
  2. 5.2A breathing LED with a timer interrupt
6

UART full course

Send text from the board to your computer over the USB cable.

  1. 6.1How UART works
  2. 6.2Send text to the computer
7

STM32 documents and architecture full course

The documents ST publishes for the chip, and what is inside the microcontroller.

  1. 7.1Technical documents: datasheet, reference manual and more
  2. 7.2MCU architecture: core, memory and buses
What you need

An STM32 board and a USB cable

  • Board

    An STM32 board

    Any STM32 board works; the lessons show the NUCLEO-F401RE. Its LED and button are all you need, and its ST-LINK programmer is built in. It costs about $20 from distributors such as Mouser, Arrow or TME (prices vary). On another board, only pin names, clock settings and some timers change.

  • Cable

    A USB cable that carries data

    It powers the board, flashes it, and carries the UART text to your computer.

  • Software

    Free tools

    STM32CubeMX and STM32CubeIDE from ST, on Windows, macOS or Linux. Lesson 0.2 installs them.

Free vs full course

Start free. Pay once when you want the rest.

Free

$0

  • Chapters 0–3: setup, GPIO, external interrupts, clocks and timers
  • 8 lessons with video, all steps and code
Start the free lessons →

Full course

$20 one-time, lifetime access

  • Everything in Free
  • Chapters 4–6: hardware PWM, a timer interrupt with an empty main loop, and text to your computer over UART
  • Chapter 7: the datasheet, reference manual and errata, and what is inside the chip
  • Ask me questions under every lesson
  • Video captions and a certificate of completion
Bonus: 36 video lessons from the previous edition: register (CMSIS) programming, bitwise operations, the startup file, MCU architecture, UART receiving and the ADC.
Get the full course · $20

Checkout on steppeschool.com. Instant access after payment. 14-day money-back guarantee, no questions asked.

FAQ

Questions

Do I need to know C?

Basic C is enough: variables, if, loops and functions. Each new idea comes with a picture first, then the code.

Is it HAL only, or registers too?

The lessons use STM32CubeMX and the HAL library, the way most STM32 projects start today. Chapter 7 explains the documents and what is inside the chip, and the bonus lessons in the full course write to the registers directly (CMSIS).

Which computer do I need?

Windows, macOS or Linux. STM32CubeMX and STM32CubeIDE are free and run on all three.

Can I use another board?

Another Nucleo board works with small changes to pins and clock settings. Cheaper boards such as the “Blue Pill” can work too, but they have no built-in programmer, so you also need an ST-LINK. Describe your board under a lesson and I'll help you set it up.

How long is it?

16 short lessons. The free lessons alone have about 80 minutes of video.

What are the bonus lessons?

36 video lessons from the previous edition of this course: register (CMSIS) programming, bitwise operations, the startup file, MCU architecture, UART receiving and the ADC. They were recorded with an older STM32CubeIDE, so some menus look different, but register code does not depend on the IDE version.

What do I get when I pay?

Instant, lifetime access on steppeschool.com: the 8 full-course lessons with videos, steps and code, the 36 bonus lessons, video captions, a certificate of completion, and a place to ask me questions under every lesson. We add lessons over time, and you get them too.

Where do I pay?

On steppeschool.com, the school's own site, in US dollars. You pay $20 once; there is no subscription.

How do I open the full course after I pay?

You get an email to set your password. Then log in at steppeschool.com: the course is in your library.

What if the course is not for me?

Write to us through the contact page within 14 days and you get your money back. No questions asked.

Blink your first LED today. It's free.

Install the tools, create the project, and see it work.