1个不稳定版本
0.1.0 | 2021年1月3日 |
---|
#768 in 异步
290KB
6.5K SLoC
Cntrlr - 简单、异步嵌入式
Cntrlr是一个一体化的嵌入式平台,用于在常见的爱好者开发板上编写简单的异步应用程序。
示例
向串口发送Hello World
#![no_std]
#![no_main]
use cntrlr::prelude::*;
use core::future::pending;
#[entry]
async fn main() -> ! {
serial_1().enable(9600).unwrap();
writeln!(serial_1(), \"Hello, World\").await.unwrap();
// Hang forever once we've sent our message
pending().await
}
闪烁LED
#![no_std]
#![no_main]
use cntrlr::prelude::*;
#[entry]
async fn main() -> ! {
pin_mode(13, PinMode::Output);
loop {
digital_write(13, true);
sleep(500).await;
digital_wrrite(13, false);
sleep(500).await;
}
}
lib.rs
:
用于简单异步嵌入式编程的库
use cntrlr::prelude::*;
use core::futures::pending;
#[entry]
async fn main() -> ! {
serial_1().enable(9600);
writeln!(serial_1(), "Hello, World").await.expect("Failed to message");
pending().await
}
有关API概述,请查看prelude
模块。这是Cntrlr提供的基本功能集,并为大多数应用程序提供功能。
有关特定硬件的功能,每个支持的板和微控制器在[hw
]下都有自己的模块。请注意,目前这些低级API存在安全和易用性问题,并且它们提供的功能并不多于实现主要Cntrlr API所需的。它们将随着时间的推移而扩展,并将为了正确性和易用性而改进。
依赖项
~1.5MB
~36K SLoC