Uses old Rust 2015
0.1.0 |
|
---|
#41 in #gpio-pin
11KB
131 lines
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
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
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