[Revised] Emulating UART Part 2: Sending Data
In Part 1 we configured the timer and the transmit pin; in Part 2 we put that time base to work and actually send data. The interrupt-driven transmitter queues a…
Firmware, hardware and the details that make them work. Tutorials from the EmbeddedExpertIO engineering community.
In Part 1 we configured the timer and the transmit pin; in Part 2 we put that time base to work and actually send data. The interrupt-driven transmitter queues a…

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.
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…
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…