Crate microbit_bsp
source ·Expand description
§microbit-bsp
microbit-bsp is a board support package (BSP) library for the BBC micro:bit v2 and newer.
§Features
- LED display driver with fonts
- Uses embassy-nrf HAL for peripherals
- Rust Async/Await
§Example application
#![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;
}
}
}
}
§Examples
To run an example:
cd examples/display
cargo run --release
Re-exports§
pub use embassy_nrf;
pub use lsm303agr;
Modules§
- Accelerometer for the micro:bit
- Driver a NxM LED matrix display
- micrphone peripheral
- Simple speaker utilities for PWM-based synth
- Watchdog Timer (WDT) driver.
Structs§
- Configuration for peripherals. Default configuration should work on any nRF chip.
- Represents all the peripherals and pins available for the BBC micro:bit.
Enums§
- The interrupt priority level.
Type Aliases§
- Button ‘A’
- LED matrix peripheral for the micro:bit