#led #embedded-hal #gpio-pin #send #morse-code

no-std 开关序列输出

向GPIO引脚发送一系列的开关状态

3个不稳定版本

0.2.0 2021年6月3日
0.1.1 2021年5月30日
0.1.0 2021年5月30日

#1604嵌入式开发

MIT 许可证

33KB
639

on-off-sequence-output

Build Status Crate Docs

一个平台无关的库,提供一系列开关状态的输出,例如LED。

安装

将此添加到您的 Cargo.toml

[dependencies]
on-off-sequence-output = "0.1"

使用

这是一个库crate,应该可以与任何在cortex-m MCU上实现 'embedded_hal' trait 'OutputPin' 的led一起工作。

源代码可能看起来像 ...

use on_off_sequence_output::prelude::*;

// This is up to the implementation details of the embedded_hal you are using.
let led_pin: OutputPin = hal_function_which_returns_output_pin();

const UPDATE_SCALE: u16 = 500;
let mut led = OnOffSequenceOutput::new(led_pin, UPDATE_SCALE);

let output_states = 0b10011101;
let number_of_output_states = 8;
led.set(output_states, number_of_output_states, Repeat::Never)
loop {
   if led.update().unwrap() { break; };
   wait(1.ms());
}

led.set(0b010, 3, Repeat::Times(2)).unwrap();
loop {
   if led.update().unwrap() { break; };
   wait(1.ms());
}

// some morse code output is possible as well
ledout.set_morse("RUST IS GOOD  ", Repeat::Forever).unwrap();
loop {
   led.update().unwrap();
   wait(1.ms());
}

示例文件夹中包含一个名为 show-led-output 的工作示例。 cargo工具 (.cargo, memory.x, openocd.cfg 等) 已为STM NUCLEO F401RE评估板做好准备。

如果您有该板可用,请运行

cargo build --target thumbv7em-none-eabihf --example show-led-output
openocd-flash.sh target/thumbv7em-none-eabihf/release/examples/show-led-output

或者您可以使用cargo-flash工具。

cargo flash --chip stm32f401re --example show-rust-is-good --target thumbv7em-none-eabihf

由于这是一个库,所以没有在 .cargo/config 中配置构建工具链。

测试

测试是通过主机上的单元测试完成的。运行

cargo test --lib --tests

... 以排除示例,因为它们在主机上无法编译

许可证

该项目受

依赖项

~71KB