2个不稳定版本
使用旧的Rust 2015
0.2.0 | 2018年11月17日 |
---|---|
0.1.0 | 2018年11月11日 |
#17 in #expander
11KB
138 行
Microchip mcp23x17 GPIO扩展器 -- 现在有了更多的Rust
这是一个用于GPIO扩展器的Rust嵌入式HAL包。我只是为了好玩而买了这块芯片,所以不要期待这里的代码是经过实战考验的。理想情况下,有一天它会提供嵌入式HAL风格的GPIO引脚,但这不是优先事项。
事实上,这里没有任何优先事项。你想要让它变得更好吗?告诉我吧!
lib.rs
:
Microchip MCP23X17的Rust库
在其当前形态中,它仅支持I2C,但寄存器映射与SPI相同。
内部,该芯片支持寄存器的分割布局,以创建两个8位GPIO端口,或者可以交错寄存器来模拟一个16位GPIO端口。这个库在第一个布局上工作,因此在调用BANK
时禁用设置set_config()
。
use linux_hal::I2cdev;
use mcp23x17::{
Mcp23x17 as Expander,
Port
};
fn main() -> Result<(), Box<Error>> {
let i2c = I2cdev::new("/dev/i2c-1")?;
let mut exp = Expander::new(i2c)?;
exp.select_port(Port::B);
exp.set_direction(0x00)?;
exp.set_data(0xff)?;
}
实现细节来自http://ww1.microchip.com/downloads/en/DeviceDoc/20001952C.pdf
依赖项
~175KB