#micro-bit #nordic #async #nrf #led-display

无需 std microbit-bsp

BBC Micro:bit v2 基于embassy的板级支持包(BSP)

3 个版本 (破坏性)

0.3.0 2024年1月28日
0.2.0 2024年1月18日
0.1.0 2024年1月12日

#1701嵌入式开发


bitbot_bsp 中使用

MIT/Apache

44KB
975 代码行

microbit-bsp

CI crates.io docs.rs

microbit-bsp 是 BBC micro:bit v2 及以上版本的板级支持包(BSP)库。

功能

  • 具有字体的 LED 显示驱动器
  • 使用 embassy-nrf HAL 对外设进行操作
  • Rust Async/Await

示例应用

#![no_std]
#![no_main]

use {defmt_rtt as _, panic_probe as _};

use microbit_bsp::*;

use {
    embassy_executor::Spawner,
    embassy_futures::select::{select, Either},
    embassy_time::Duration,
};

#[embassy_executor::main]
async fn main(_spawner: Spawner) {
    let board = Microbit::default();

    let mut display = board.display;
    let mut btn_a = board.btn_a;
    let mut btn_b = board.btn_b;

    display.set_brightness(display::Brightness::MAX);
    display.scroll("Hello, World!").await;
    defmt::info!("Application started, press buttons!");
    loop {
        match select(btn_a.wait_for_low(), btn_b.wait_for_low()).await {
            Either::First(_) => {
                display
                    .display(display::fonts::ARROW_LEFT, Duration::from_secs(1))
                    .await;
            }
            Either::Second(_) => {
                display
                    .display(display::fonts::ARROW_RIGHT, Duration::from_secs(1))
                    .await;
            }
        }
    }
}

示例

运行示例

cd examples/display
cargo run --release

依赖项

~13MB
~318K SLoC