#io #hal #i2c #expander #interface #serial #driver

无std mcp23017

A rust driver for the MCP23017 (16-Bit I2C I/O Expander with Serial Interface)

3 releases (1 stable)

1.0.0 2021年5月20日
0.1.1 2019年11月10日
0.1.0 2019年10月15日

嵌入式开发中排名1828

MIT许可证

17KB
294

mcp23017

适用于MCP23017(16位I2C I/O扩展器带串行接口模块)的no_std驱动程序

Build Status Docs

基本用法

将此作为依赖项添加到您的Cargo.toml

[dependencies.mcp23017]
version = "<version>"

使用embedded-hal实现获取I2C句柄,然后创建mcp23017句柄

extern crate mcp23017;

match mcp23017::MCP23017::default(i2c) {
    Ok(mut u) => {
        u.init_hardware();
        u.pin_mode(1, mcp23017::PinMode::OUTPUT);   // for the first pin
        u.all_pin_mode(mcp23017::PinMode::OUTPUT);  // or for all pins

        let status = u.read_gpioab().unwrap();
        println!("all {:#?}", status).unwrap();

        let read_a = u.read_gpio(mcp23017::Port::GPIOA).unwrap();
        println!("port a {:#?}", read_a).unwrap();

        match u.write_gpioab(65503){
            Ok(_) => {
                println!("ok").unwrap();
            }
            _ => {
                println!("something wrong").unwrap();
            }
        }
    }
    Err(mcp23017::MCP23017::Error::BusError(error)) => {
        println!("{:#?}", error).unwrap();;
        panic!();
    }
    _ => {
        panic!();
    }
};

硬件地址引脚

文档

API文档可在docs.rs上找到

许可证

MIT许可证

依赖项

~71KB