Code Monkey home page Code Monkey logo

stm32h7xx-hal's Introduction

Documentation

stm32h7xx-hal

docs.rs Bors enabled CI Crates.io

stm32h7xx-hal contains a hardware abstraction layer on top of the peripheral access API for the STMicro STM32H7xx 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.

This crate relies on Adam Greig's fantastic stm32h7 crate to provide appropriate register definitions, and implements a partial set of the embedded-hal traits. Much of the implementation was adapted from other HAL crates in the stm32-rs organisation.

Collaboration on this crate is highly welcome, as are pull requests!

Supported Configurations

  • stm32h743v (Revision V: stm32h743, stm32h742, stm32h750)
  • stm32h753v
  • stm32h743 (Revision Y: stm32h743, stm32h742, stm32h750)
  • stm32h753
  • stm32h747cm7 (stm32h747, stm32h757)
  • stm32h7b3
  • stm32h7b0
  • stm32h7a3

Single core parts (Cortex M7)

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. If you have a device purchased since mid-2019, you likely want to use the feature gate ending in a v.

Dual core parts (Cortex M7 + Cortex M4)

On dual core parts, currently only the Cortex M7 core is supported.

Flash memory size

By default this crate assumes a 2Mbyte flash size. To set a smaller limit for linker errors, uncomment the correct FLASH section definition in memory.x

Getting Started

The examples folder contains several example programs. To compile them, specify the target device in a cargo feature:

$ cargo build --features=stm32h743v,rt

See the Examples README for more details.

To use stm32h7xx-hal as a dependency in a standalone project the target device feature must be specified in the Cargo.toml file:

[dependencies]
cortex-m = "0.6.2"
cortex-m-rt = "0.6.12"
stm32h7xx-hal = {version = "0.8.0", features = ["stm32h743v","rt"]}

If you are unfamiliar with embedded development using Rust, there are a number of fantastic resources available to help.

Hardware

Below is a short list of publicly available and documented STM32H7 development boards. Note that including them on this list does not mean they have been successfully tested with this crate. Some boards have a Board Support Crate (BSP) offering pin mappings and additional functionality.

Board Manufacturer BSP / Examples?
NUCLEO-H743ZI ST Examples
STM32H743I-EVAL ST
STM32H747I-EVAL ST
STM32H747I-DISCO ST
Daisy Seed Electrosmith
Portenta H7 ⚠️ Arduino
OpenH743I-C Waveshare
Toasty Webtronics

⚠️: Programming this board via its USB connector requires interacting with an unknown proprietary(?) bootloader. This bootloader may make it difficult or impossible for you to load binaries not approved by Arduino. Alternative programming interfaces are only available on the high density connectors.

Minimum supported Rust version

The Minimum Supported Rust Version (MSRV) at the moment is 1.43.0. Older versions may compile, especially when some features are not used in your application.

Changelog

See CHANGELOG.md.

License

0-Clause BSD License, see LICENSE-0BSD.txt for more details.

stm32h7xx-hal's People

Contributors

antoinevg avatar astraw avatar bors[bot] avatar dflemstr avatar hargonix avatar jordens avatar jyn514 avatar leprechaun avatar mattico avatar mlamoore avatar mtthw-meyer avatar richardeoin avatar ryan-summers avatar tstellanova avatar windfisch avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.