#i2c-driver #driver #io #i2c #expander #embedded-hal-driver

无std pcf857x

PCF8574、PCF8574A和PCF8575 I/O扩展器的跨平台Rust驱动程序

4个版本 (破坏性更新)

0.4.0 2021年5月22日
0.3.0 2019年6月8日
0.2.0 2018年10月20日
0.1.0 2018年8月22日

#2114 in 嵌入式开发

每月26次下载

MIT/Apache

34KB
548

Rust PCF857x I/O扩展器驱动程序

crates.io Docs Build Status Coverage Status

这是一个基于embedded-hal traits的PCF8574、PCF8574A和PCF8575 I2C I/O扩展器的跨平台Rust驱动程序。

此驱动程序允许您:

  • 一次性将所有输出设置为0或1。请参阅set()
  • 读取选定的输入。请参阅get()
  • 通过数组重复设置所有输出。请参阅write_array()
  • 通过数组重复读取选定的输入。请参阅read_array()
  • 将设备分割成独立的输入/输出引脚。请参阅split()

设备说明

设备包括8或16个准双向端口、I²C总线接口、三个硬件地址输入和中断输出。准双向端口可以独立分配为输入以监控中断状态或键盘,或作为输出以激活指示设备,如LED。

活动低开漏中断输出(INT)可以连接到微控制器的中断逻辑,并在任何输入状态与其相应的输入端口寄存器状态不同时被激活。

数据表

用法

请在此仓库中找到使用硬件的附加示例: driver-examples

use linux_embedded_hal::I2cdev;
use pcf857x::{Pcf8574, PinFlag, SlaveAddr};

fn main() {
    let dev = I2cdev::new("/dev/i2c-1").unwrap();
    let address = SlaveAddr::default();
    let mut expander = Pcf8574::new(dev, address);
    let output_pin_status = 0b1010_1010;
    expander.set(output_pin_status).unwrap();

    let pins_to_be_read = PinFlag::P0 | PinFlag::P7;
    let status = expander.get(pins_to_be_read).unwrap();

    println!("Input pin status: {}", status);
}

支持

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

许可证

许可协议为以下之一:

由您自行选择。

贡献

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

依赖项

~71KB