Skip to content

About

A Rust `embedded-hal` implementation for all MCUs in the PY32 F0 family

Topics

Resources

Stars

18 stars

Watchers

2 watching

Forks

Repository files navigation

py32f0xx-hal

[HAL] for the py32f0xx family of microcontrollers

Crates.io Crates.io docs.rs Continuous integration dependency status

py32f0xx-hal contains a hardware abstraction on top of the peripheral access API for the puyasemi PY32F0xx family of microcontrollers.

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

Supported

  • py32f030 (py32f030xx4, py32f030xx6, py32f030xx7, py32f030xx8)
  • py32f003 (py32f003xx4, py32f003xx6, py32f030xx8)
  • py32f002a (py32f002ax5)
  • py32f002b (py32f002bx5)
Family F002A F002B F030/F003
RCC ✅ ✅ ✅
GPIO ✅ ✅ ✅
INTERRUPT ✅ ✅ ✅
DMA N/A N/A ✅
EXTI ✅ ✅ ✅
USART ✅ ✅ ✅
I2C ✅ ✅ ✅
SPI ✅ ✅ ✅
ADC ✅ ✅ ✅
RTC N/A N/A ✅
FLASH
COMP
Timer(PWM) ✅ ✅ ✅
Watchdog ❓ ❓ ❓
LED N/A N/A
  • ✅ : Implemented
  • Blank : Not implemented
  • ❓ : Requires demo verification
  • + : Async support
  • N/A : Not available

TODOs

  • LSE/LSI test and examples

  • Other chips

Getting Started

The examples folder contains several example programs. To compile them, one must specify the target device as cargo feature:

$ cargo build --features=py32f030 --example=blinky

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

[dependencies]
embedded-hal = "1"
nb = "1"
cortex-m = "0.7.7"
cortex-m-rt = "0.7.3"
# Panic behaviour, see https://crates.io/keywords/panic-impl for alternatives
panic-halt = "0.2.0"
py32f0xx-hal = { version = "0.6.1", features = ["py32f030"] }

Optional Features

  • rtic this feature includes a monotonic timer module for use with that crate
  • defmt Adds derive(defmt::Format) to Error types in this crate

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

Minimum supported Rust version

The minimum supported Rust version is the latest stable release. Older versions may compile, especially when some features are not used in your application.

Changelog

See CHANGELOG.md.

Credits

This repo was inspired by stm32f0xx-hal and stm32f1xx-hal

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

About

A Rust `embedded-hal` implementation for all MCUs in the PY32 F0 family

Topics

Resources

Stars

18 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages