#stm32 #gpio-pin #arm #cortex-m #extra #no-std

yanked stm32-extras

Bit-banding access for STM32 peripherals

Uses old Rust 2015

0.1.0 Sep 22, 2017

#22 in #extra

MIT/Apache

11KB
131 lines

crates.io crates.io CircleCI

stm32-extras

Extra API on top of STM32 device crates (stm32f103xx)

Examples

Configuring GPIO pins without disturbing other pins (no read-modify-write which could lead to data races):

use stm32_extras::GPIOExtras;
let gpioc = unsafe { &*stm32f103xx::GPIOC.get() }; // Get GPIOC somehow...

// Set pin to 2Mhz, open-drain.
// Modifies corresponding GPIO configuration bits without reads
gpioc.pin_config(13).output2().open_drain();

Generalized interface to GPIO pins:

use stm32_extras::GPIOExtras;
let gpioc = unsafe { &*stm32f103xx::GPIOC.get() }; // Get GPIOC somehow...

// Set pins 13, 14 and 15 on GPIOC to 1, 0 and 1.
gpioc.write_pin_range(13, 3, 0b101);

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.

Dependencies

~0–1.2MB
~46K SLoC