1 个不稳定版本
使用旧的 Rust 2015
0.1.0 | 2018 年 1 月 28 日 |
---|
#12 in #spi-bus
31KB
512 行
rustpiIO
RustpiIO 是一个库,用于读取和写入树莓派的 SPI 总线和 GPIO 引脚。
它使用 Linux OS 提供的 /sys/class/gpio/ 下的系统接口来处理 GPIO。并为串行接口封装了 spidev。
还有一个接口可以读取 /proc/cpuinfo 下的 修订码,以供程序使用。
文档
您可以在 此处 找到文档。
安装
要编译树莓派程序,您需要准备一个 rust 的交叉编译器(对于较旧的 pi 处理器,请尝试 *gnueabi
而不是 *gnueabihf
)
rustuptarget add arm-unknown-linux-gnueabihf
sudoapt-get install gcc-arm-linux-gnueabihf
要将链接器设置为使用哪个程序,请将以下行添加到相应的 ./cargo/config 文件中(如本项目所示)
[target.arm-unknown-linux-gnueabihf]
链接器="arm-linux-gnueabihf-gcc"
使用 cargo build --target=arm-unknown-linux-gnueabihf
编译树莓派程序
示例
extern crate rustpi_io;
use rustpi_io::*;
fn main() {
let gpio2 = match GPIO::init(2, GPIOMode::Write){
Ok(result) => result,
Err(e) => panic!("{:?}", e),
};
let gpio3 = match GPIO::init(3, GPIOMode::Read){
Ok(result) => result,
Err(e) => panic!("{:?}", e),
};
let mut value:u8 = 1;
for n in 1..100 {
value = 1-value;
let data = match value {
0 => GPIOData::Low,
1 => GPIOData::High,
_ => GPIOData::High
};
match gpio2.set(data) {
Ok(_) => {},
Err(e) => panic!("Error{:?}", e),
}
match gpio3.value(){
Ok(data) => println!("value: {}", data),
Err(e) => panic!("{:?}", e),
}
}
}
依赖项
~1.5MB
~37K SLoC