#pin #dummy #gpio-pin #io #gpio #hal

无std dummy-pin

模拟嵌入式-hal特性格式输入/输出引脚的实现

4个版本 (1个稳定版)

1.0.0 2024年1月19日
0.2.0-alpha.12022年8月11日
0.1.1 2021年4月22日
0.1.0 2021年3月10日

嵌入式开发中排名第1702


3个软件包使用

MIT/Apache

13KB
118

模拟输入/输出引脚实现

crates.io Docs MSRV Build Status Coverage Status

此软件包提供了embedded-hal特性格式的模拟实现。这在处理某些引脚由硬件处理,而软件无需了解其情况时非常有用。

除了无操作、零成本的DummyPin之外,此软件包还提供了一个LastStateDummyPin实现,该实现存储在运行时设置的最后一个状态并在读取时返回该状态。

用法

此示例演示了相同的驱动程序如何与真实或模拟输出引脚一起工作。

use dummy_pin::DummyPin;
use embedded_hal::digital::OutputPin;
use linux_embedded_hal::SysfsPin;

struct Driver<P> {
    output: P,
}

impl<P, E> Driver<P>
where
    P: OutputPin<Error = E>,
{
    fn new(pin: P) -> Self {
        Driver { output: pin }
    }

    fn do_something(&mut self) -> Result<(), E> {
        // ...
        self.output.set_high()
    }
}

fn main() {
    // The same driver can operate with either a real or a dummy pin.
    let real_pin = SysfsPin::new(25);
    let mut driver_with_real_pin = Driver::new(real_pin);
    driver_with_real_pin.do_something().unwrap();

    let dummy_pin = DummyPin::new_low();
    let mut driver_with_dummy_pin = Driver::new(dummy_pin);
    driver_with_dummy_pin.do_something().unwrap();
}

支持

有关问题、问题、功能请求和其他更改,请在此github项目中提交问题。

许可协议

许可协议为以下之一

您可选。

贡献

除非您明确说明,否则您提交的任何旨在包含在本作品中的贡献,根据Apache-2.0许可协议定义,均应如上所述双许可,无需任何额外的条款或条件。

依赖项

~56KB