Skip to content

About

STM32 library in C++ : A collection of lightweight C/C++ libraries, utilities, and examples for STM32 microcontrollers and embedded firmware development.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

170 Commits

Folders and files

Repository files navigation

Raymon-Lib-STM32

A collection of C/C++ utilities and examples for STM32 firmware

Platform Language License: MIT

فارسی | English


Overview

Raymon-Lib-STM32 is a collection of embedded C/C++ utilities, peripheral examples, and experiments for STM32 microcontrollers. The repository is organized by feature rather than as a single installable package. Each component may have its own hardware, STM32 HAL, compiler, or library requirements.

Component Catalogue

Component Purpose Requirements / notes
QBuffer Fixed-capacity byte buffer, packet framing, CRC and command parsing Header-only C++; review API and buffer limits
QPacket Packet framing with markers, length, counter and CRC Uses QCRC; inspect QCommand too
FlashEEPROM Store and restore a structure in internal flash STM32 HAL and project main.h; target flash layout must be checked
PrintfUart Formatted UART input/output STM32 HAL and project main.h
Servo Motor SG90 PWM-based servo example Existing guide uses STM32F1/TIM2 as its example
FFT for STM32H743 FFT example using CMSIS-DSP Compatible CMSIS-DSP and target configuration
Bootloader jump MCU-specific bootloader jump Verify exact MCU and memory map; potentially unsafe
Lock program in code Read-protection / firmware-locking notes Potentially destructive; review before use
Bluetooth example Module-specific Bluetooth code Hardware and protocol dependent
PW05 Bluetooth UART-based Bluetooth module control Firmware, AT commands and GPIO wiring dependent
ILI9488 TFT SPI TFT display and drawing APIs Multiple conflicting variants; select and validate one only
cUart C++ streams backed by UART Blocking UART streams; read limitations before use
C/C++ rename helpers Rename main.c / main.cpp Renames only; does not convert source code

This catalogue is based on files currently present in the repository. It does not claim that every component has been compiled or hardware-validated.

Getting Started

  1. Clone the repository.
  2. Open the folder for the component you need and read its local README.
  3. Start from an STM32CubeIDE / STM32CubeMX project configured for the exact MCU, clock tree, pins and peripherals.
  4. Add only the required files and configure include paths, STM32 HAL, and external dependencies.
  5. Build for the target and test on hardware with a safe recovery procedure.
git clone https://github.com/Raymon-Research-Team/Raymon-Lib-STM32.git

There is no verified repository-wide build system or single installation command documented here. Components must be integrated individually.

Safety and Portability

  • Internal flash: FlashEEPROM erases a calculated flash region before writing. Verify the reference manual, erase granularity, banks, reserved pages, and linker map before use.
  • Bootloader / read protection: Incorrect addresses or protection settings can make firmware inaccessible or require a full-chip erase.
  • PWM / servo: Timer period, prescaler, channel, and GPIO settings depend on the MCU and clock tree.
  • FFT: CMSIS-DSP version, compiler settings, memory placement, and FPU configuration affect integration.
  • No blanket compatibility guarantee: Source presence does not establish support for every STM32 family or board.

Documentation

Contributing

Include the MCU part number, board, toolchain version, HAL/CMSIS versions, build output, and reproducible steps in bug reports. Do not describe a component as hardware-validated unless it was tested on the specified target.

💖 Support Raymon-Lib-STM32

If these STM32 utilities save you time, donations help support continued development, hardware testing, maintenance, and documentation. Donations are voluntary and do not change the repository license or grant additional usage rights.

Donate Contact

Scan to open the Raymon Research Team donation page

Scan the QR code or use the donation page: donatr.ee/raymon-research-team

💸 Cryptocurrency donations

Verify the network before sending. BTC must be sent on the Bitcoin network; the ETH/USDT address below is for Ethereum (ERC-20). Network mismatches can permanently lose funds.

🟠 Bitcoin (BTC)

bc1qd39vgmnweuzh5hp2cqm4cnh782xga6wph3v650

🔵 Ethereum (ETH) / USDT (ERC-20)

0x1C21c39324F65a38Fb8de9ccB92aB01FdeD1534C

🌟 Other ways to support

⭐
Star
the repository
🐛
Report
a bug
🧪
Test
a component
📝
Improve
documentation

After donating, you can email rahman.h22@gmail.com with the transaction ID if you would like to notify the maintainer. Do not send private keys or seed phrases.


License

The repository's top-level LICENSE declares the MIT License, which permits commercial use subject to its terms. External dependencies remain subject to their own licenses; see Licensing Notes.

Maintained by Raymon Research Team.

About

STM32 library in C++ : A collection of lightweight C/C++ libraries, utilities, and examples for STM32 microcontrollers and embedded firmware development.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages