STM32 Getting Started Tutorial Video Series (by STM32World)
This site have quite a lot of visitors and it appears quite popular, but these days more people are watching Youtube videos for learning rather than reading actual documentation. For this reason, we have decided to create some getting started videos which will teach you how to move beyond Arduino.
STM32 is a family of MCUs and there will never be a "one fit all". For this reason, these videos will use different MCUs, probably mostly STM32World and Black Pill.
The videos will all be posted here: https://www.youtube.com/@stm32world/videos
The source code of all the examples will be put in this github repository: https://github.com/STM32World/stm32fun
And in the following playlist: https://www.youtube.com/playlist?list=PLVfOnriB1RjWT_fBzzqsrNaZRPnDgboNI
STM32 Tutorial #1 - Overview, Families, Documentation and Development boards and tools
The first video in the series cover the wide array of STM32 MCUs, where to find documentation (obviously mostly here on this wiki) and how to download and install STM32CubeIDE.
You can watch the video on Youtube: https://www.youtube.com/watch?v=EZqwBuRpdns
STM32 Tutorial #2 - First project in STM32CubeIDE (blink)
In the second video we develop our first application in STM32CubeIDE for the Black Pill board.
You can watch the video on youtube here: https://www.youtube.com/watch?v=O6cNvE9ZrVU.
STM32 Tutorial #3 - First Blink (done WRONG!)
The third video in the series showing the Arduino way - which is just plain wrong!
Watch on Youtube here: https://www.youtube.com/watch?v=g-RVJDnlHd0
STM32 Tutorial #4 - Second Blink (done right!)
The blink application the way it _should_ be done!
Watch on Youtube here: https://www.youtube.com/watch?v=rQDa_vxYM2Q
STM32 Tutorial #5 - Getting started - Introduction to Debugging
Introducing STM32 debugging.
Watch on Youtube here: https://www.youtube.com/watch?v=WT_wqCAuR-c
STM32 Tutorial #6 - External Interrupt
Introducing external interrupts.
Watch on Youtube here: https://www.youtube.com/watch?v=eLrsCw1UDJU
STM32 Tutorial #7 - Optimizing my stuff (getting smarter every day)
Someone pointed out that my code was not optimal - so tweaked and that was leading to a massive improvement.
Watch on Youtube here: https://www.youtube.com/watch?v=AA-mjZ4hWZc
STM32 Tutorial #8 - Introduction to Timers
In this video we begin a dive into STM32 timers.
Watch on Youtube here: https://www.youtube.com/watch?v=sdr0EFT2LqU
STM32 Tutorial #9 - Using a timer channel to blink a LED
Final video on the topic of blinking a LED. Using a timer and timer channel alone with absolutely no code being executed so no CPU cycles wasted.
Watch on Youtube here: https://www.youtube.com/watch?v=Sy-WHDiYVm4
STM32 Tutorial #10 - Pulsing a LED using PWM from a Timer Channel
In this video, rather than simply blinking - toggling on/ff - a LED we use PWM to change the brightness or intensity of the LED.
Watch on Youtube here: https://www.youtube.com/watch?v=4eVfLC05spU
STM32 Tutorial #11 - Running multiple timer channels
In this video we will add more timer channels, so run PWM on 4 different LEDs simultaneously. Apologies that this video got a bit short and perhaps a bit boring.
For this video a few more LEDs are needed. How they are hooked up is described on this page: 4 LEDs Hooked up to GPIO.
Watch on Youtube here: https://www.youtube.com/watch?v=ubfZBRW8Onc
STM32 Tutorial #12 - Low level access to peripherals
In this video we will explain a bit more about HAL and show how we can speak directly to a peripheral without using HAL at all.
The memory map is explained in more detail here: STM32 Memory Map
Watch on Youtube: https://www.youtube.com/watch?v=EFjRXGrDehM
STM32 Tutorial #13 - Optimizing my stuff again (more than one way to skin a cat)
I discovered a few alternative ways to optimize the main loop. This video will explain those.
Watch on Youtube: https://www.youtube.com/watch?v=QVqE0S4yJT4
STM32 Tutorial #14 - Individual PWM channels pulsing with a sine wave
In this video we continue our dive into PWM by pulsing the four LEDs from the earlier example with individual frequencies.
Watch on Youtube: https://www.youtube.com/watch?v=4s5GswERslA
STM32 Tutorial #15 - Sine wave on DAC with DMA
In this video we will use the DAC to create a sine wave. We'll be using DMA transfers to speed it up.
Watch on Youtube: https://www.youtube.com/watch?v=0N4ECamZw2k
STM32 Tutorial #16 - UART Receive with DMA and Idle Detection
In this video we will introduce UART (USART) Transmit and Receive and we will use DMA with Idle Detection to process received strings. We will be handling speeds up to 2.5 Mbps.
Watch on Youtube: https://www.youtube.com/watch?v=Eh7Szh-K-u8
STM32 Tutorial #17 - More debugging - introducing SWO
How to use SWO for debug output and profiling.
Watch on Youtube: https://www.youtube.com/watch?v=j-GaEZKrkbQ
STM32 Tutorial #18 - SURPRISING Timer feature - Rotary Encoder with Timer Input Capture
In this video we will decode the signals from a rotary encoder using input capture from two timer channels.
Watch on Youtube: https://www.youtube.com/watch?v=6oXmkOyYzyg
STM32 Tutorial #19 - Understanding C types on STM32 MCUs
Just a short video going through the size of various standard C types on STM32 MCUs.
Watch on Youtube: https://www.youtube.com/watch?v=xjMX6PgJv4g
STM32 Tutorial #20 - Understand I²C
In this video we will introduce the I²C (or I2C) bus and the STM32 HAL libraries supporting the I²C peripheral.
Watch on Youtube: https://www.youtube.com/watch?v=n7vlq_67FI0
STM32 Tutorial #21 - I²C Read and Write
In this video we will read data from and write to a I²C device.
Watch on Youtube: https://www.youtube.com/watch?v=ZbEU47V_6Ik
STM32 Tutorial #22 - AMAZING Jump to System Bootloader
In this video we demonstrate that it is possible to jump to the built-in system bootloader without using the boot0 pin.
Watch on Youtube here: https://www.youtube.com/watch?v=qXi6o8hhwUE
Planned videos
Some planned videos. Order not guaranteed or even remotely considered at this point. I'll do what I feel like but I might be influenced by comments.
- STM32 Memory Map
- SPI
- ADCs
- CAN
- USB
- FreeRTOS
- Built-in bootloader
- DIY Bootloader