Blog category: stm32
UART driver on the STM32, printf build issues, and how the ST-LINK debugger was hijacking my serial output.
Handmade drone part 1: building the devFrame from scratch
Part 1 of a series on building a slow-flying camera drone from 3D printed parts, off-the-shelf hardware, and hand-sourced electronics. This post covers printing and assembling the devFrame open source quadcopter frame.
Bare-Metal Embedded C Programming: Chapter 8 - SysTick Timer
Implementing a SysTick driver for millisecond delays on the STM32F446RE, then using it to debounce a button press that toggles an LED.
Debugging My First GPIO Driver
I found two typos in my GPIO code by stepping through CLion's debugger with the peripherals view. Sometimes the bugs teach you more than the working code.
Understanding ARM CMSIS: Memory-Mapped Hardware
How I learned to work with ARM CMSIS standard by rewriting a blinky program and understanding memory-mapped peripheral structures.
STM32F446 + CMake + CLion Integration
Setting up one-click build and flash for STM32F446 bare-metal development with CMake and CLion on Arch Linux.
Building a Custom Makefile for STM32 Bare-Metal Development
I wrote a custom Makefile for my STM32F446 bare-metal C project, learning about target-prerequisite relationships and Make's reserved keywords along the way.
STM32 bare metal: writing a linker script and startup code from scratch
Chapter 4 of Gbati's Bare-Metal-C: replacing the auto-generated startup assembly and linker script with hand-written C equivalents, then debugging through five attempts before the LED blinked.
STM32 bare metal blinky: walking the GNU ARM toolchain
Chapter 3 of Gbati's Bare-Metal-C: upgrading from a static LED to a proper blinky, then manually running each stage of the GNU ARM toolchain to see what STM32CubeIDE normally hides.
Planning a bar velocity tracker from scratch
A tentative design for a barbell velocity tracker: STM32L4, a high-resolution accelerometer, e-ink display, and a CR2032 coin cell. This is the optimistic version of the plan.
STM32 bare metal hello world
First embedded foray: configuring a Nucleo F446 by reading the datasheet directly and turning on the LED 2 light, following Israel Gbati's Bare-Metal Embedded C Programming.