1 个不稳定版本
0.1.0 | 2020年9月22日 |
---|
#785 in 嵌入式开发
14KB
263 行
apu_pcengines_hal
APU2+硬件直接内存接口的安全包装。
安装
使用cargo(或rustup)从git安装
sudo apt install build-essential
git clone https://gitlab.com/dns2utf8/apu_pcengines_hal.git
cargo build --release --example leds
sudo ./target/release/examples/leds
从gitlab下载nightly版本
CI在每个提交时在main
分支上构建二进制文件。您可以从https://dns2utf8.gitlab.io/apu_pcengines_hal/leds下载leds示例程序或使用以下命令
wget https://dns2utf8.gitlab.io/apu_pcengines_hal/leds
sudo ./leds
lib.rs
:
APU2+硬件直接内存接口的安全包装。
这是一个针对原始指针的零成本抽象。为了符合Rust的安全性,存在运行时检查,并且所有引脚都必须通过Mapping::free_pin
返回
use apu_pcengines_hal::{MappingResult, APU_LED1, APU_LED2, APU_LED3};
fn main() -> MappingResult<()> {
let mut map = apu_pcengines_hal::init()?;
println!("init done: {:?}", map);
let led2 = map.get_pin(APU_LED2)?;
println!("led2: {:?}", led2);
let mut led2 = led2.into_input();
let val = led2.get();
println!("led2: {:?} = {}", led2, val);
let mut led2 = led2.into_output();
println!("led2: {:?}", led2);
led2.set(!val);
map.free_pin(led2);
Ok(())
}
依赖关系
~43KB