STM32 Tutorial Videos
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
And in the following playlist: https://www.youtube.com/playlist?list=PLVfOnriB1RjWT_fBzzqsrNaZRPnDgboNI
The source code of all the examples will be put in this github repository: https://github.com/STM32World/stm32fun
STM32 Tutorial Videos #1 - Overview, Families, Documentation and Development boards and tools
A rather long introduction to STM32 - providing an overview, explaining the families with focus on where to find documentation and finally a brief mention of the various development boards.
Watch on youtube here: https://www.youtube.com/watch?v=EZqwBuRpdns
STM32 Tutorial Videos #2 - First project in STM32CubeIDE
Creating the first project in STM32CubeIDE.
Watch on youtube here: https://www.youtube.com/watch?v=O6cNvE9ZrVU
STM32 Tutorial Videos #3 - First Blink (done WRONG)
First blink application - done the wrong way!
Watch on youtube here: https://www.youtube.com/watch?v=g-RVJDnlHd0
STM32 Tutorial Videos #4 - Second Blink (done right!)
Second blink application - done the right way!
Watch on youtube here: https://www.youtube.com/watch?v=rQDa_vxYM2Q
STM32 Tutorial Videos #5 - DEBUGGING in-circuit
Introduction to single step debugging using ST-Link and SWD. This one makes ALL the difference.
Watch on youtube here: https://www.youtube.com/watch?v=WT_wqCAuR-c
STM32 Tutorial Videos #6 - External Interrupt
Handling key press using external interrupt on a GPIO pin.
Watch on youtube here: https://www.youtube.com/watch?v=eLrsCw1UDJU
STM32 Tutorial Videos #7 - Optimizing my stuff (getting smarter every day)
Optimizing code!!!
Watch on youtube here: https://www.youtube.com/watch?v=AA-mjZ4hWZc
STM32 Tutorial Videos #8 - Introduction to timers
Introduction to timers. In this video we will simply blink our LED using a timer.
Watch on youtube here: https://www.youtube.com/watch?v=sdr0EFT2LqU
STM32 Tutorial Videos #9 - Using a timer channel to blink a LED
First dive into timer channels - using a very slow running PWM signal to blink the LED.
Watch on youtube here: https://www.youtube.com/watch?v=Sy-WHDiYVm4
STM32 Tutorial Videos #10 - Pulsing a LED using PWM from a Timer Channel
In this video we use a timer channel to generate PWM which in turn pulses a LED.
Watch on youtube here: https://www.youtube.com/watch?v=4eVfLC05spU
STM32 Tutorial Videos #11 - Running multiple timer channels
In this video we will add more timer channels, so run PWM on 4 different LEDs simultaneously.
Watch on youtube here: https://www.youtube.com/watch?v=ubfZBRW8Onc
STM32 Tutorial Videos #12 - Low level access to peripherals
In this video we will bypass HAL completely and use a peripheral directly. As it is quite simple we will be using the built-in hardware random generator.
Watch on youtube here: https://www.youtube.com/watch?v=EFjRXGrDehM
STM32 Tutorial Videos #13 - Optimizing my stuff again (more than one way to skin a cat)
Optimizing code!!!
Watch on youtube here: https://www.youtube.com/watch?v=QVqE0S4yJT4
STM32 Tutorial Videos #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 here: https://www.youtube.com/watch?v=4s5GswERslA
STM32 Tutorial Videos #15 - Sine wave on DAC with DMA
In this video we continue our dive into the DAC peripheral by calculating and feeding it a sine wave. We will be using DMA to reduce the load on the actual CPU core. Taking this approach speeds up to 1 Msps is possible.
Watch on youtube here: https://www.youtube.com/watch?v=0N4ECamZw2k
STM32 Tutorial Videos #16 - UART Receive with DMA and Idle Detection
In this video we will introduce UART (USART) Transmit and Receive and will use DMA with Idle Detection to process received strings. Using this approach speed up to 2.5 Mbps can be achieved relialbly.
Watch on youtube here: https://www.youtube.com/watch?v=Eh7Szh-K-u8
STM32 Tutorial Videos #17 - More debugging - introducing SWO
In this video we will dive more into debugging by looking at the SWO (Serial Wire Output) and using that to print debug information and to do profiling.
Watch on youtube here: https://www.youtube.com/watch?v=j-GaEZKrkbQ
STM32 Tutorial Videos #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 here: https://www.youtube.com/watch?v=6oXmkOyYzyg
STM32 Tutorial Videos #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 here: https://www.youtube.com/watch?v=xjMX6PgJv4g
STM32 Tutorial Videos #20 - Understanding I2C
In this video we will introduce the I2C bus and the STM32 HAL libraries supporting the I2C peripheral.
Watch on youtube here: https://www.youtube.com/watch?v=n7vlq_67FI0
STM32 Tutorial Videos #21 - I2C Read and Write
In this tutorial video we will read from and write to a I2C device. The video also describe the difference between Big- and Little-Endian MCU's.
Watch on youtube here: https://www.youtube.com/watch?v=ZbEU47V_6Ik
STM32 Tutorial Videos #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. It is a bit naughty as it uses the stack space to store a flag during restart (stack space is NOT initialized during a reset).
Watch on youtube here: https://www.youtube.com/watch?v=qXi6o8hhwUE
STM32 Tutorial Videos #23 - UNDERSTANDING GPIO
In this video we dive into the details around GPIOs and alternate functions.
Watch on youtube here: https://www.youtube.com/watch?v=TSDS3op91TE
STM32 Tutorial Videos #24 - HOW TO Read from and Write to I2C Slave
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 Videos #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 Videos #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 Videos #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 here: https://www.youtube.com/watch?v=3Kevk3l6vPs
STM32 Tutorial Videos #28 - ESSENTIAL FreeRTOS Runtime Statistics
In this video we will collect and use runtime statistics from FreeRTOS.
Watch on youtube here: https://www.youtube.com/watch?v=zY_I6GZffos
STM32 Tutorial Videos #29 - TAMING the Dog (Independent Watchdog - IWDG)
In this video we will dive into the STM32 Watchdogs - in particular the Independent Watchdog (IWDG). A future video will add the Window Watchdog (WWDG).
Watch on youtube here: https://www.youtube.com/watch?v=wMfDr_AQFko
STM32 Tutorial Videos #30 - DUAL DAC w. FreeRTOS and DMA
In this exciting video we will generate TWO beautiful sine waves on both of the STM32F405 DACs. We will be using DMA and let FreeRTOS handle the scheduling of the callbacks.
Watch on youtube here: https://www.youtube.com/watch?v=i9j63SeN1H8
STM32 Tutorial Videos #31 - Measuring LSI for IWDG Watchdog
In an earlier video (Tutorial video #29) we worked with the Independent Watchdog (IWDG) and were slightly confused about the timing. In this video we will verify the results we found but actually measuring the frequency of the LSI (Low Speed Internal oscillator).
Watch on youtube here: https://www.youtube.com/watch?v=4lfsBK5ahWA
STM32 Tutorial Videos #32 - HIDDEN Treasure (CCMRAM)
In this video we will explore the CCMRAM feature of the STM32F40x MCU's and use that RAM for the FreeRTOS heap. We will also be using the Independent Watchdog (IWDG) with FreeRTOS.
Watch on youtube here: https://www.youtube.com/watch?v=pvekb2h8_og
STM32 Tutorial Videos #33 - SD Card w. FatFS (using SDIO)
In this video you will learn how to interface a SD-card with FatFS (ExFAT to be exact) using SDIO. I manage to thoroughly mess it up but figure it out at the end. I have left the mess so you can see - and avoid - the pitfalls yourself - and I actually added the solution the day after the main part was created.
Watch on youtube here: https://www.youtube.com/watch?v=S78q6SuwnrM
STM32 Tutorial Videos #34 - SD Card w. FatFS (using SPI)
In this video we will be interfacing a SD-card with SPI peripheral (rather than the SDIO used in the previous video)
Watch on youtube here: https://www.youtube.com/watch?v=rk8rMyOc76M
STM32 Tutorial Videos #35 - DEMYSTIFYING C Pointers (and Variables)
In this video we will be diving into C variables, pointers and function call parameters.
Watch on youtube here: https://www.youtube.com/watch?v=Ip2J2jxZYaA