5个版本 (3个破坏性更新)
0.4.0 | 2021年9月7日 |
---|---|
0.3.1 | 2020年9月13日 |
0.3.0 | 2019年12月25日 |
0.2.0 | 2019年8月31日 |
0.1.0 | 2019年8月9日 |
#2174 in 嵌入式开发
每月40次下载
用于 ruspiro-sdk
28KB
387 代码行
RusPiRo I²C总线接口crate
简单、安全地访问Raspberry Pi上可用的I²C总线。此实现将需要GPIO引脚2和3专用于I²C总线。
依赖项
I²C实现需要在最终二进制文件中构建分配器。建议与此crate一起使用ruspiro-allocator
。
用法
要使用crate,只需将以下依赖项添加到您的Cargo.toml
文件中
[dependencies]
ruspiro-i2c = "0.3"
完成后,您可以在Rust文件中像这样访问I²C总线接口
use ruspiro_i2c::I2C;
fn demo() {
I2C.take_for(|i2c| {
if i2c.initialize(250_000_000, true).is_ok() {
// now scan I2C devices connected to RPi, this will print their
// addresses to the console
let devices = i2c.scan().unwrap();
for d in devices {
info!("device detected at 0x{:2X}", d);
}
}
});
}
要配置和使用连接到I²C总线的设备,您可以使用在获取I2C时提供的函数。首先,您可以在继续配置之前检查设备是否连接到总线
use ruspiro_i2c::I2C;
fn demo() {
let device_addr = 0x68;
I2C.take_for(|i2c| {
if i2c.check_device(device_addr).is_ok() {
// configure the device...
// as arbitary example pass value 0x1 to the 8bit register 0x10
i2c.write_register_u8(device_addr, 0x10, 0x1);
}
});
}
许可证
根据Apache License,版本2.0授权,(LICENSE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
依赖项
~2MB
~40K SLoC