This document is a summary of the STM32 Programming course for beginners: https://https://www.steppeschool.com/courses/stm32-programming-course.
We designed this document to be the complementary material for the course. So, you fully leverage this document by using it along with the course's content.
This course is designed for individuals just starting to program microcontrollers, offering a systematic learning approach. STM32CubeMx software, along with STM32 HAL API, is an advanced tool that allows programming microcontrollers graphically with minimum effort. However, the ease comes with a price: we don't acquire in-depth knowledge. Therefore, we will learn to program the microcontroller using both STM32CubeMX and STM32 HAL API, as well as the Common Microcontroller Software Interface Standard (CMSIS). A library that provides only a basic framework. Working on a low level helps you understand how the microcontroller operates, debug the errors quickly, and develop your custom code. To sum up, we will learn programming STM32 microcontrollers using STM32CubeMX software and the CMSIS library.
In this course, we will cover these topics:
-
GPIO peripheral
-
External Interrupts
-
Timers
-
Generating a PWM signal
-
Timer update interrupts
-
UART Communication protocol
-
Analog-to-Digital Converter
Also, instead of just understanding these topics, we will design the logic of a smart LED device. In terms of Hardware, I use the Nucleo-L412KB board, but you can use any other type of STM32 board without much difficulty. Also, we need to have a pair of LEDs and a button.