挑战
你现在已经武装好迎接挑战了!你的任务是实现我在本章开头向你展示的应用程序。
如果您不能确切地看到这里发生了什么,那么它的版本要慢得多:
由于单独使用 LED 引脚非常烦人(特别是如果您必须像这里一样使用基本上所有这些引脚), 您可以使用BSP提供的显示API。它是这样工作的:
#![deny(unsafe_code)] #![no_main] #![no_std] use cortex_m_rt::entry; use rtt_target::rtt_init_print; use panic_rtt_target as _; use microbit::{ board::Board, display::blocking::Display, hal::{prelude::*, Timer}, }; #[entry] fn main() -> ! { rtt_init_print!(); let board = Board::take().unwrap(); let mut timer = Timer::new(board.TIMER0); let mut display = Display::new(board.display_pins); let light_it_all = [ [1, 1, 1, 1, 1], [1, 1, 1, 1, 1], [1, 1, 1, 1, 1], [1, 1, 1, 1, 1], [1, 1, 1, 1, 1], ]; loop { // Show light_it_all for 1000ms display.show(&mut timer, light_it_all, 1000); // clear the display again display.clear(); timer.delay_ms(1000_u32); } }
有了这个API,您的任务基本上归结为只需计算适当的图像矩阵并将其传递到BSP。