stm32h7xx-hal 0.2.0

Peripheral access API for STM32H7 series microcontrollers

docs Bors enabled Build status



This crate has support for most commonly used peripherals, but is not complete. Collaboration on this crate is highly welcome as are pull requests!

Beta or nightly required

stm32h7xx-hal contains a hardware abstraction on top of the peripheral access API for the STMicro STM32H7 series microcontrollers. The selection of the MCU is done by feature gates, typically specified by board support crates.

The currently supported feature gates are:

  • stm32h743 ✔️
  • stm32h753 ✔️

Feature gates for the stm32h742, stm32h750 also exist but may not be complete.

In 2019 ST released hardware Revision V of the STM32H742, STM32H743, STM32H750 and STM32H753 (eevblog). This hardware revision makes breaking hardware changes, documented in AN5312. These parts are supported with the following feature gates:

  • stm32h743v ✔️
  • stm32h753v ✔️

Again, feature gates stm32h742v, stm32h750v also exist.

The idea behind this crate is to gloss over the slight differences in the various peripherals available on those MCUs so a HAL can be written for all chips in that same family without having to cut and paste crates for every single model.

This crate relies on Adam Greig's fantastic stm32h7 Peripheral Access Crate (PAC) to provide appropriate register definitions. This crate implements a partial set of the embedded-hal traits.

Much of the implementation was adapted from other HAL crates in the stm32-rs organisation.


  1. Rustup toolchain installer

Configure Toolchain

$ rustup target add thumbv7em-none-eabihf

Build Examples

You will need to change stm32h743 to match your hardware.

$ cargo build --release --examples --features stm32h743,rt

Run an Example

$ cargo run --release --features stm32h743,rt --example blinky

This will start arm-none-eabi-gdb.


0-clause BSD license.