#gpio-pin #gpio #spi #spi-bus #read-write #raspberry-pi #raspberry

rustpi_io

RustpiIO 是一个库,用于读取和写入树莓派的 SPI 总线和 GPIO 引脚

1 个不稳定版本

使用旧的 Rust 2015

0.1.0 2018 年 1 月 28 日

#12 in #spi-bus

GPL-3.0 许可证

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