STM32 Microcontrollers


I learned STM32 microcontrollers from Udemy, Embedded Expert IO, Controllers Tech, YouTube, etc.

STM32 Microcontrollers w/wo FreeRTOS
Microcontroller: STM32G474Vxx, F407xx, H753xx, F767xx, H755xx, etc
Software: STM32CubeIDE, STM32CubeMX, STM32CubeProgrammer
Library: Bare-Metal Programming (LL), CMSIS, HAL
Debugger: STLINK-V3SET

FreeRTOS is an open-source real-time operating system (RTOS) designed for embedded devices, known for its simplicity, small footprint, and real-time capabilities. It provides a lightweight kernel that allows for task scheduling, inter-task communication, and resource management in embedded systems.

Important Learning Points of STM32 Microcontrollers
  • LL, CMSIS, HAL
  • System Clock, Timer Interrupt, SysTick
  • GPIO Write/GPIO Read with Polling or External Interrupt
  • ADC with Polling, ISR, DMA, Timer Trigger, Analog Watchdog, Injected
  • DMA Interface/Memory to Memory
  • UART Transmit/Receive with/without Interrupt, DMA
  • SPI Transmit/Receive with/without Polling, Interrupt, DMA
  • I2C Transmit/Receive with/without Polling, Interrupt, DMA
  • CAN Transmit/Receive with/without Polling, Interrupt, DMA
  • CAN-FD Transmit/Receive with/without Polling, Interrupt, DMA
  • Real Time Clock (RTC) Interface
  • Ethernet with/without Polling, Interrupt, DMA, LwIP, HTTPD, SSI, CGI
  • CMSIS DPS Software Library

  • Important Learning Points of FreeRTOS for STM32 Microcontrollers
    The FreeRTOS Reference Manual
    Mastering the FreeRTOS Real-Time Kernel
  • Task (Creation, Parameters, Priority, Suspend, Resume, Terminate, Block, Idle Task)
  • List (Creation, Insertion, Delete)
  • Queue (Creation, Send/Receive Data, Queue Set, Gatekeep Task, w/wo ISR)
  • Semaphore (Binary Semaphore, Counting Semaphore, Mutex, w/wo ISR)
  • Timer (One-shot Timer, Auto-reload Timer)
  • Event Groups (Event Bits, Multiple Setters, Task Synchronization)
  • Notifications (Task Notification)
  • Scheduler (Preemption, Time Slicing)

  • STM32F407xx Programming Documents
    STM32F4 Discovery Pinout
    STM32F407 Block Diagram
    STM32F407 Clock Tree
    STM32F407 Memory Mapping
    STM32F407 Vector Table
    STM32F407 DMA Request Mapping
    STM32F407 Alternate Function Mapping
    STM32F4 HAL and Low Layer Drivers
    STM32F407 Datasheet
    STM32F407 Reference Manual

    STM32F767xx Programming Documents
    Nucleo F767ZI Pinout
    Nucleo F767ZI Schematic
    STM32F767xx Block Diagram
    STM32F767 Clock Tree
    STM32F767 Vector Table
    STM32F767 DMA Request Mapping
    STM32F767 Alternate Function Mapping
    STM32F7 HAL and Low Layer Drivers
    STM32F767xx Datasheet
    STM32F767xx Reference Manual

    STM32H753xI Programming Documents
    STM32H753xI Block Diagram
    STM32H753xI Datasheet
    STM32H753xI Reference Manual

    STM32 Programming Reference Website
    CMSIS DSP Software Library

    A suite of common signal processing functions for use on Cortex-M and Cortex-A processor based devices. The library is released in source form. It is strongly advised to compile the library using -Ofast to have the best performances. The library functions are declared in the public file arm_math.h which is placed in the Include folder.

  • Basic math functions
  • Fast math functions
  • Complex math functions
  • Filtering functions
  • Matrix functions
  • Transform functions
  • Motor control functions
  • Statistical functions
  • Support functions
  • Interpolation functions
  • Support Vector Machine functions (SVM)
  • Bayes classifier functions
  • Distance functions
  • Quaternion functions

  • A Collection of STM32 Microcontroller Tutorials

    [STM32F103, CMSIS] STM32 Getting Started – Registers Programming
    [STM32F103, HAL] STM32 Getting Started – HAL Library

    [STM32F407, LL] Mastering Microcontroller and Embedded Driver Development
    [STM32F407, HAL] Mastering STM32F407 Microcontrollers

    [STM32F446, CMSIS] STM32Fx Microcontroller Custom Bootloader Development
    [STM32F446] ARM Cortex M Microcontroller DMA Programming Demystified

    [STM32F411, CMSIS] DSP From Ground Up On Arm Processors
    [STM32F411, HAL] Embedded Systems STM32 HAL APIs Driver Development
    [STM32F411, CMSIS] Embedded Systems State Machines & Data Structures
    [STM32F411, LL] Embedded Systems STM32 Low-Layer APIs Driver Development
    [STM32F411, LL] Modern Bare-Metal Embedded C++ Programming from Ground Up
    [STM32F411, CMSIS] Embedded Systems Object-Oriented Programming in C and C++

    [STM32F767, CMSIS] STM32F7 Bare-Metal Programming From Ground Up
    [STM32F767] Embedded Ethernet Essential Training with CubeMX
    [STM32F767] Embedded Ethernet Programming with HAL
    [STM32F767] Embedded Ethernet Bare-Metal Programming from Ground Up

    A Collection of STM32 Microcontroller Boards I have used


    Back to top of the page