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

no-std mcp23x17

同名的Microchip GPIO扩展器的Rust嵌入式HAL驱动程序

2个不稳定版本

使用旧的Rust 2015

0.2.0 2018年11月17日
0.1.0 2018年11月11日

#17 in #expander

MIT 许可证

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