[Revised] Emulating UART Part 2: Receiving Data
In Part 2 we pushed bytes out onto the wire; in Part 3 we turn the same timer interrupt around and listen. We will detect the start bit, sample each…
Firmware, hardware and the details that make them work. Tutorials from the EmbeddedExpertIO engineering community.
In Part 2 we pushed bytes out onto the wire; in Part 3 we turn the same timer interrupt around and listen. We will detect the start bit, sample each…

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.
To achieve precise, deterministic sampling rates essential for digital signal processing and control systems, this guide explores using a hardware timer to trigger the…
Unlike UART or I2C, an SPI master never simply listens: clocks only run while the master transmits, so every read is inherently a simultaneous…
Until now, the timer has only known how to repeat — PWM painting the same waveform over and over, forever. Output Compare is the…
In this new series guide, we shall emulate the UART hardware using a clever combination of timers and DMA to achieve effortless, CPU-independent serial…
In Part 1, we used a timer to measure time; now we’ll put it to work generating signals instead. In this part, we configure…
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…