// the find
stm32-rs/stm32h7xx-hal
Peripheral access API for STM32H7 series microcontrollers
A Rust HAL for the STM32H7 family — a high-performance Cortex-M7 line with dual-core variants, Ethernet, DSI, OctoSPI, and a mess of DMA controllers. Targets embedded Rust developers who want type-safe peripheral access without writing register twiddles themselves. If you're using an H7 and don't want to use C, this is the starting point.
The peripheral coverage is genuinely wide: three separate DMA controllers (DMA, BDMA, MDMA) each with their own abstractions, OctoSPI/HyperRAM, DSI display, Ethernet with PHY drivers, FDCAN, SAI/PDM audio — not just the usual SPI/I2C/UART stub HAL. The example set is one of the better ones in the stm32-rs ecosystem: 70+ examples covering DMA, RTIC integration, ethernet, flash, SDMMC, and more, each targeting specific real hardware. Hardware revision handling (the 2019 Rev V silicon break) is documented and handled via feature flags rather than silently broken. CI runs clippy and format checks, not just build checks.
STM32H7R3/7S3 — ST's newest H7 variants — are explicitly unsupported with no timeline, which matters if you're buying hardware today. Dual-core (M7+M4) support is M7-only; the M4 core is dead weight in the type system. The DMA API is split three ways (DMA/BDMA/MDMA) with meaningfully different interfaces, so porting example code between peripherals that use different DMA controllers isn't straightforward. Star count (289) is low for how capable this is — the community is small, which means slower bug fixes and more chance you hit an untested peripheral combination.