Welcome to my STM32 Practical Projects Repository. This repository documents my hands-on learning journey with STM32 microcontrollers. The purpose of this repo is to progress from microcontroller fundamentals and Bare-Metal concepts to advanced peripheral control and Real-Time Operating Systems (RTOS).
This repository will continue to grow as new projects, tutorials, and deep-dives are added.
This repository contains a collection of structured mini-projects and practical examples, covering:
- STM32 architecture and memory mapping
- Low-Level (LL) and Hardware Abstraction Layer (HAL) programming
- Mastering essential Peripherals (GPIO, Timers, UART, ADC)
- Working with interrupts (EXTI, NVIC) and DMA
- Implementing Real-Time Operating Systems (FreeRTOS)
Each project includes the necessary source code, configuration files (e.g., .ioc), and documentation to support learning and reproducibility.
| Category | Project Title | Description | Difficulty | Link |
|---|---|---|---|---|
| Getting Started | Introduction to STM32 | Basics of STM32, Blue Pill board, CubeIDE & CubeMX setup | 🟢Beginner | Introduction to STM32 |
| GPIO/Basics | LED Blinking | First project for configuring a GPIO pin as Output and using HAL_Delay for basic timing. |
🟢Beginner | LED Blinking |
| PWM/Timer | RGB Traffic Light (PWM) | Controls an RGB LED using TIM1 PWM channels and implements complex color fading logic for real-time behavior. | 🟡Intermediate | RGB Traffic Light (PWM) |
🟢 Beginner → Focuses on single peripheral control and basic setup.
🟡 Intermediate → Involves two or more peripherals, interrupts, or timing logic.
🔴 Advanced → Includes complex protocols (I2C, SPI), DMA, or RTOS implementation.
These resources are essential for my STM32 development and learning journey:
- STMicroelectronics Official Website — STM32 home page, official datasheets, and reference manuals.
- STM32CubeIDE Documentation — The official Integrated Development Environment (IDE) and toolchain for STM32 development.
- STM32CubeMX User Manual (UM1718) — The essential guide for using the configuration and code generation tool.
- The Reference Manual (RM) — CRITICAL: In-depth documentation covering the registers and peripherals of your specific microcontroller (e.g., STM32F4xx RM).
- STM32 Step by Step Wiki — A structured wiki provided by STMicroelectronics to help users get started.
- Controllerstech - STM32 Tutorials — Excellent tutorials covering various STM32 peripherals and communication protocols.
- DeepBlue Embedded - STM32 Tutorials — Tutorials focused on C programming for microcontrollers and deep-dive embedded concepts.
- STMicroelectronics MOOC (YouTube) — Official STM32 courses and tutorials from STMicroelectronics.
- GPIO, UART, I2C, SPI, ADC, Timers - YouTube Playlist — A comprehensive playlist focusing on core STM32 peripherals.
- Embedded C Programming - YouTube Playlist — A helpful playlist focusing on fundamental embedded C programming concepts.