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 but should be fairly development board agnostic.
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. We also employ a somewhat naughty method of storing a variable between MCU resets.
Watch on Youtube here: https://www.youtube.com/watch?v=qXi6o8hhwUE
STM32 Tutorial #23 - Understanding GPIO
In this video we dive into the details around GPIOs and alternate functions. We will dive into more details in a later video.
Watch on Youtube here: https://www.youtube.com/watch?v=TSDS3op91TE
STM32 Tutorial #24 - Writing and Reading from I2C Sensor
In this video we will use I2C to read temperature data from the BMP085 Temperature/Pressure sensor.
Watch on Youtube here: https://www.youtube.com/watch?v=Pk7lvJF15rY
STM32 Tutorial #25 - Bit manipulation using bit banding
In this video we will be doing bit-manipulation using Bit Banding. Bit Banding is a feature (optional feature) of ARM Cortex M0, M3 and M4 cores and it is as far as I know available in all of the F series MCU's.
Watch on Youtube here: https://www.youtube.com/watch?v=a0UQXd8kgbs
STM32 Tutorial #26 - Creating a LIBRARY for a I2C sensor
In this video we will finalise dealing with the BMP085 temperature and pressure sensor by creating a portable C library.
Watch on Youtube here: https://www.youtube.com/watch?v=Me5HEjUcc8s
STM32 Tutorial #27 - DIVING into FreeRTOS
In this video we will start a dive into FreeRTOS on STM32 MCUs. We will be using the CMSIS RTOS/V2 abstraction layer.
Watch on Youtube: https://www.youtube.com/watch?v=3Kevk3l6vPs
STM32 Tutorial #28 - FreeRTOS Runtime Statistics
In this video we will collect and use runtime statistics such as cpu cycles and stack usage from FreeRTOS.
Watch on Youtube: https://www.youtube.com/watch?v=zY_I6GZffos
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
- DIY Bootloader
- SD-Card + FAT