stm32h5xx-hal contains a hardware abstraction layer on top of the peripheral access API for the STMicro STM32H5xx family of microcontrollers. 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.
The following STM32H5xx MCUs are supported by the HAL:
Part | RM | Dev board |
---|---|---|
stm32h503 | RM0492 (errata) | Nucleo H503RB |
stm32h523 | RM0481 (errata) | |
stm32h533 | RM0481 (errata) | Nucleo H533RE |
stm32h562 | RM0481 (errata) | |
stm32h563 | RM0481 (errata) | Nucleo H563ZI |
stm32h573 | RM0481 (errata) |
For all listed MCUs above, core clock & power configuration and startup is implemented. The status of support for peripherals is shown in the table below.
Peripheral/Feature | Supported? | Issue | Notes |
---|---|---|---|
GPIO | ✅ | - | |
ICache | ✅ | - | |
I2C | ✅ | - | Controller operation is done; Target is 🚧 |
CAN | 🚧 | - | |
Rng | 🚧 | #34 | |
SPI | 🚧 | #36 | |
UART | 🚧 | - | |
DMA | 🚧 | - | |
ADC | ❌ | #35 | |
Timers | ❌ | - | |
PWM | ❌ | - | |
Rtc | ❌ | - | |
Flash | ❌ | - |
The Minimum Supported Rust Version (MSRV) at the moment is 1.78.0. Older versions may compile, especially when some features are not used in your application.
The examples folder contains several example programs. To compile them, specify the target device in a cargo feature:
$ cargo build --features=stm32h523,rt --example <example>
If you are unfamiliar with embedded development using Rust, there are a number of fantastic resources available to help.
- Embedded Rust Documentation
- The Embedded Rust Book
- Rust Embedded FAQ
- rust-embedded/awesome-embedded-rust
See CHANGELOG.md. Note: this will be populated once the first crates have been published to crates.io.
0-Clause BSD License, see LICENSE-0BSD.txt for more details.