
MCP23017
MCP23017带有串行接口模块的16位I2C I/O扩展器
2
Github Watches
16
Github Forks
13
Github Stars
mcp23017
no_std driver for MCP23017 (16-Bit I2C I/O Expander with Serial Interface module)
Basic usage
Include this library as a dependency in your Cargo.toml
:
[dependencies.mcp23017]
version = "<version>"
Use embedded-hal implementation to get I2C handle and then create mcp23017 handle:
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!();
}
};
Hardware address pins
Documentation
API Docs available on docs.rs
License
相关推荐
Confidential guide on numerology and astrology, based of GG33 Public information
Emulating Dr. Jordan B. Peterson's style in providing life advice and insights.
Your go-to expert in the Rust ecosystem, specializing in precise code interpretation, up-to-date crate version checking, and in-depth source code analysis. I offer accurate, context-aware insights for all your Rust programming questions.
Take an adjectivised noun, and create images making it progressively more adjective!
Reviews

user_OxbJBuRR
The mcp23017 by circuitry-maker has been an essential component in my projects, offering seamless expansion for GPIO pins on microcontrollers. The ease of integration and robust performance make it a must-have for anyone looking to enhance their hardware setups. Highly recommended for both beginners and advanced users! Check it out at https://github.com/circuitry-maker/mcp23017.