Welcome to Hang's Website

Menu
  • Home
  • Embedded Systems
    • Hardware Peripheral
    • TI Microcontrollers
      • TI C2000 Real-time Microcontrollers
      • TI ARM-based Microcontroller
    • STM32 Microcontrollers
  • AI & ML Across Platforms
    • NVIDIA Jetson Thor
    • AMD (Xilinx) FPGA & SoM
      • Artix 7 FPGA
      • Zynq 7000 SoC
      • Zynq UltraScale+ MPSoC (Kria K26 SoM)
  • mmWave Imaging Radar
    • Imaging Radar Perception
      • Sensor Calibration
    • mmWave Radar Signal Processing
    • TI-Based mmWave Radar
    • NXP-Based mmWave Radar
  • Mixed-Signal Board Design
    • Dev Module
    • TI C2000 Dev Board
    • STM32 Dev Board
  • Resources
  • Other
    • Projects
      • Polaris GEM Electric Self-driving Vehicle
        • Sensor Integration
        • Sensor Calibration
        • Vehicle Accel/Brake Calibration
        • ROS2 Software Stack Development
          • Sensing & Data Preprocessing
          • Perception
          • Dynamics & Control
          • Localization & Mapping
          • Vehicle Interface & PACMod2
          • Simulation
      • Real-time Control Module for HIL
    • Teaching
    • Hobbies
Menu

STM32 Microcontrollers


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
    RTC and TAMP with STM32 MCUs
    Cortex-M4 Devices Generic User Guide

    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
    100
    About Me

    I am Dr. Hang Cui, a robotics engineer at Gatik AI. Previously, I worked as a software engineer at the Center for Autonomy at the University of Illinois Urbana-Champaign.

    Contact: Email

    Follow me: LinkedIn | Gitea | GitHub


    Proficient In
    Real-time Embedded Microcontrollers and Linux Systems
    Hardware and Software Integration for AI Embedded Platforms
    Perception and Signal Processing for Automotive 4D Imaging Radar
    Technical Blogs TI C2000 Real-time MCU STM32 MCU with FreeRTOS Communication Interfaces Actuator Control Interfaces Simulink Embedded Coder Yocto Project on Raspberry Pi

    Self-hosted Applications Gitea & CI Runner Daily Notes Brainstorm Mapping Shared Markdown Notes Bookmark Management Project Management Document Management eBook Management n8n AI Workflow Automation
    • STM32 FreeRTOS: FreeRTOS Scheduler02/25/2026
    • STM32 FreeRTOS: Semaphores and Mutexes02/12/2026
    • STM32 FreeRTOS: Queues and Queue Sets02/10/2026
    • TI C2000: Interrupts02/08/2026
    • STM32 FreeRTOS: Task API Functions02/06/2026
    • STM32 FreeRTOS: Introduction to FreeRTOS02/04/2026
    • TI C2000: Analog Subsystem – Analog-to-Digital Converter (ADC)02/04/2026
    • TI C2000: General-Purpose I/O (GPIO) and PinMux02/02/2026
    • TI C2000: System Initialization02/02/2026
    • TI C2000: Reset and Boot Process01/31/2026
    • TI C2000: Peripheral Register Header Files01/31/2026
    • TI C2000: Memory-Map and and Linker Command File01/28/2026
    • TI C2000: TI C2000 Architecture Overview01/27/2026
    • Ethernet Media Access Controller (Ethernet)01/27/2026
    • TI C2000: Introduction to TI C2000 Core Board V1.301/18/2026
    Visitor Map
    ©2026 Welcome to Hang's Website | Theme by SuperbThemes