STM32 Getting Started Tutorial Video Series (by STM32World)

From Stm32World Wiki
Revision as of 05:13, 9 November 2024 by Lth (talk | contribs)
Jump to navigation Jump to search

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. 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