Embedded Rust on STM32
Powerfully Safe
Learn safe, bare-metal programming for STM32 microcontrollers using Rust. Focus on leveraging the efficiency of the ARM Cortex-M architecture for robust, high-performance firmware.
Lesson 1
Getting Started with STM32 & Rust
Learn how to set up your development environment for Embedded Rust programming on STM32 microcontrollers.
Lesson 2
Using the Hardware Abstraction Layer
Explore the STM32 HAL crates for safe, high-level control over peripherals instead of raw register manipulation.
Lesson 3
External Interrupts and Debouncing
Handle asynchronous inputs with EXTI and apply debouncing techniques for reliable button/sensor signals.
Lesson 4
Timers and PWM Control
Configure on-chip timers to generate delays and Pulse Width Modulation (PWM) for LEDs, motors, and more.
Lesson 5
Real-Time Concurrency (RTIC)
Structure interrupt-driven firmware with RTIC for predictable concurrency and shared resource management.
Lesson 6
Serial Communication (UART/USART)
Send logs and exchange data over UART/USART; learn buffering, framing, and async/non-blocking patterns.
Lesson 7
Asynchronous Networking (Embassy)
Use the Embassy ecosystem to build async I/O and networking flows without blocking your firmware.
Lesson 8
Sensor Protocols (I2C/SPI)
Master I2C and SPI basics to interface with sensors, displays, and external peripherals.