Getting Started with STM32 Low Layer (LL): Output Compare
Until now, the timer has only known how to repeat — PWM painting the same waveform over and over, forever. Output Compare is the moment it learns to schedule: instead…
Firmware, hardware and the details that make them work. Tutorials from the EmbeddedExpertIO engineering community.
Until now, the timer has only known how to repeat — PWM painting the same waveform over and over, forever. Output Compare is the moment it learns to schedule: instead…

A book by our founder
Get the best-selling bare-metal embedded C programming book. Learn to read datasheets, work directly with registers and build your own peripheral drivers for Arm microcontrollers.
In Part 3 of our series, we will configure GATT Services and Characteristics on the STM32WB55 to establish two-way data communication with your smartphone.…
This guide walks through building a lightweight, framed UART protocol for emulating a sensor, covering the frame layout, parser design, and error handling needed…
Accurate timing is a fundamental requirement in most embedded applications, whether for blinking an LED, polling a sensor, or driving communication protocols. This guide…
The Serial Peripheral Interface (SPI) is one of the most common protocols for connecting microcontrollers to external devices such as sensors, memory chips, and…
In Part 2 of our series, we will configure the STM32WB55 to initialize its Bluetooth Low Energy stack and start broadcasting advertising packets. You’ll…
Expanding upon our single-channel DMA foundation, this guide scales the STM32F4’s ADC to simultaneously sample multiple analog channels. By enabling the ADC’s scan mode…
Taking data acquisition to the ultimate level of efficiency, this guide explores using Direct Memory Access (DMA) to capture continuous single-channel ADC conversions on…