#linux-gpio #embedded-hal #gpio #linux #gpiochip #chardev #wrapper

gpiocdev-embedded-hal

提供gpiocdev请求的嵌入式-hal包装库

2个版本

0.1.1 2024年5月23日
0.1.0 2024年2月20日

#1045 in 嵌入式开发

Download history 1/week @ 2024-04-07 119/week @ 2024-05-19 2/week @ 2024-05-26 4/week @ 2024-06-02 3/week @ 2024-06-09 1/week @ 2024-06-16

每月125次下载

Apache-2.0 OR MIT

305KB
5.5K SLoC

gpiocdev-embedded-hal

Build Status github crate LICENSE

一个Rust库,通过使用gpiocdev在Linux平台上使用GPIO字符设备实现了embedded-hal traits。

示例用法

读取行值

    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.");
    }

设置行

    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()?;

按名称请求行

    use embedded_hal::digital::InputPin;

    let mut pin = gpiocdev_embedded_hal::InputPin::from_name("GPIO23")?;

等待行上的事件

    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?;

可以在示例目录中找到工作示例。

许可证

以下任一许可证下提供

任选其一。

贡献

除非你明确声明,否则根据Apache-2.0许可证定义的任何有意提交以包含在工作中的贡献,均将按上述方式双重许可,不附加任何额外条款或条件。

依赖关系

~0.5–11MB
~119K SLoC