A repository for storing and reviewing STM32 programming exercises completed during class.
This repository is mainly used as a personal study archive so that I can revisit the code and concepts later.
- GPIO
- UART
- UART communication between STM32 boards
- DMA
- Interrupts and callbacks
- Receive-to-Idle
- Input / output handling
- Buffers
- I2C
- STM32 HAL
- STM32CubeMX / STM32CubeIDE
Practice with serial communication using STM32 UART.
Topics include:
- PC ↔ STM32 UART communication
- STM32 ↔ STM32 communication
- TX / RX handling
- UART DMA reception
HAL_UARTEx_RxEventCallback()- Receive-to-Idle
- Input buffering
- Enter and Backspace handling
A simple message communication program was also implemented during class using two STM32 boards.
This repository contains STM32 exercises and code created during class using STM32CubeIDE and STM32 HAL.
STM32/
├── .settings/ # STM32CubeIDE settings
├── .vscode/ # VS Code settings
├── Core/
│ ├── Inc/ # Application header files
│ ├── Src/ # Main source code and practice files
│ └── Startup/ # MCU startup code
├── Debug/ # Build output files
├── Drivers/
│ ├── CMSIS/ # ARM Cortex / STM32 definitions
│ └── STM32F4xx_HAL_Driver/ # STM32 HAL drivers
├── cmake/ # CMake configuration
├── .clangd
├── .cproject
├── .gitignore
├── .mxproject
├── .project
├── CMakeLists.txt # CMake build configuration
├── CMakePresets.json
├── STM32F411RETX_FLASH.ld # Linker script
├── STM32F411RETX_RAM.ld # Linker script
├── STM32F411xx_FLASH.ld # Linker script
├── led Debug.launch
└── led.ioc # STM32CubeMX configuration
Most practice code and modifications are located in
Core/SrcandCore/Inc.
- STM32F411
- C
- STM32CubeMX
- STM32CubeIDE
- STM32 HAL
- CMake
- UART / I2C / GPIO
The purpose of this repository is to keep the code and exercises from class organized for review.
Rather than being a standalone project, it serves as a study archive for understanding STM32 peripherals, communication, and embedded programming concepts.