Crates.io | gpiocdev-embedded-hal |
lib.rs | gpiocdev-embedded-hal |
version | 0.1.1 |
source | src |
created_at | 2024-02-20 03:20:25.211369 |
updated_at | 2024-05-23 00:04:26.869683 |
description | A library providing embedded-hal wrappers around gpiocdev Requests |
homepage | |
repository | https://github.com/warthog618/gpiocdev-rs |
max_upload_size | |
id | 1145938 |
size | 98,087 |
A Rust library implementing embedded-hal traits for GPIO lines on Linux platforms using the GPIO character device using gpiocdev.
Reading line value:
use embedded_hal::digital::InputPin;
// request the line
let mut pin = gpiocdev_embedded_hal::Input::new("/dev/gpiochip0", 23)?;
// get the value
if pin.is_high()? {
println!("Input is high.");
}
Setting a line:
use embedded_hal::digital::OutputPin;
use embedded_hal::digital::PinState;
// request the line
let mut pin = gpiocdev_embedded_hal::Output::new("/dev/gpiochip0", 23, PinState::High)?;
// do something...
// change value later
pin.set_low()?;
Requesting a line by name:
use embedded_hal::digital::InputPin;
let mut pin = gpiocdev_embedded_hal::InputPin::from_name("GPIO23")?;
Waiting for events on a line:
use embedded_hal::digital::InputPin;
use embedded_hal_async::digital::Wait;
// request the line
let mut pin = gpiocdev_embedded_hal::tokio::Input::new("/dev/gpiochip0", 23)?;
// wait for line edge events
pin.wait_for_any_edge().await?;
Working examples can be found in the examples directory.
Licensed under either of
at your option.
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.