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次下载
34KB
548 行
Rust PCF857x I/O扩展器驱动程序
这是一个基于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 License, Version 2.0 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- 麻省理工学院许可证(《LICENSE-MIT》或http://opensource.org/licenses/MIT)
由您自行选择。
贡献
除非您明确声明,否则任何根据Apache-2.0许可证定义有意提交以包含在作品中的贡献,均应按照上述方式双授权,不附加任何额外条款或条件。
依赖项
~71KB