8个版本 (4个破坏性更新)
0.4.3 | 2021年9月6日 |
---|---|
0.4.2 | 2021年5月1日 |
0.4.1 | 2020年9月12日 |
0.4.0 | 2020年1月3日 |
0.0.2 | 2019年7月29日 |
#1998 in 嵌入式开发
每月下载量:122
在 3 crate 中使用
38KB
614 行
RusPiRo GPIO访问抽象,适用于Raspberry Pi
此crate提供了一个简单易用且安全的GPIO外设抽象,适用于Raspberry Pi 3。GPIO配置需要访问具有特定内存基址的MMIO寄存器。由于这可能在不同的型号之间有所不同,因此编译时根据提供的 ruspiro_pi3
功能选择正确的地址。
用法
要使用此crate,只需将以下依赖项添加到您的 Cargo.toml
文件中
[dependencies]
ruspiro-gpio = "0.4.3"
完成后,GPIO抽象的访问将在您的rust文件中可用,如下所示
use ruspiro_gpio::GPIO;
fn demo() {
// "grab" the GPIO in a safe way and use the provided closure to work with it
// as long as the closure is executed, no other core can access the GPIO to configure pins etc.
GPIO.with_mut(|gpio| {
// retrieving a pin gives a Result<>. If the pin is not already taken it returns an Ok()
// with the pin.
if let Ok(pin) = gpio.get_pin(17) {
// as we have now access to the pin, configure it as output and set it to high
// to lit a connected LED
pin.to_output().high();
}
})
}
使用提示
GPIO crate通过一个 Singleton
提供对外设的访问,以确保从Raspberry Pi的每个核心对它进行安全访问。此 Singleton
使用锁和原子操作来保护访问。这些原子操作仅在Raspberry Pi上(如果MMU已配置并激活(具有活动缓存))才有效。因此,要在项目中正确使用此crate,请检查ruspiro-mmu crate以及如何配置和激活MMU。
许可证
根据Apache License,版本2.0(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)或MIT(LICENSE-MIT 或 http://opensource.org/licenses/MIT)进行许可,任选其一。
依赖项
~1.5MB
~39K SLoC