1 个不稳定版本
0.1.0 |
|
---|
#1632 在 嵌入式开发
每月25次下载
4.5MB
774 行
SH1106驱动程序
SH11xx和SSD1xxx OLED显示器的I2C和SPI驱动程序,100%用Rust编写
文档
[示例]
此crate使用 probe-run
运行示例。一旦设置好,它应该像这样简单:cargo run --example image --features=embassy-stm32 --features=spi --release
。某些示例需要 --release
来减少FLASH使用。
#![no_std]
#![no_main]
mod bsp;
use embassy_executor::Spawner;
use embedded_graphics::{
mono_font::{ascii::FONT_6X10, MonoTextStyleBuilder},
pixelcolor::BinaryColor,
prelude::*,
text::{Baseline, Text},
};
use embedded_hal_async::delay::DelayNs;
use oled_async::{prelude::*, Builder};
use {defmt_rtt as _, panic_probe as _};
#[embassy_executor::main]
async fn main(_spawner: Spawner) {
let (di, mut reset, mut delay) = bsp::board::get_board();
type Display = oled_async::displays::sh1107::Sh1107_128_128;
//type Display = oled_async::displays::sh1108::Sh1108_64_160;
//type Display = oled_async::displays::ssd1309::Ssd1309_128_64;
let raw_disp = Builder::new(Display {})
.with_rotation(crate::DisplayRotation::Rotate180)
.connect(di);
let mut display: GraphicsMode<_, _, { 128 * 128 / 8 }> = raw_disp.into();
display.reset(&mut reset, &mut delay).unwrap();
display.init().await.unwrap();
display.clear();
display.flush().await.unwrap();
let text_style = MonoTextStyleBuilder::new()
.font(&FONT_6X10)
.text_color(BinaryColor::On)
.build();
Text::with_baseline("Hello world!", Point::zero(), text_style, Baseline::Top)
.draw(&mut display)
.unwrap();
Text::with_baseline("Hello Rust!", Point::new(0, 16), text_style, Baseline::Top)
.draw(&mut display)
.unwrap();
display.flush().await.unwrap();
loop {
delay.delay_ms(1000).await;
}
}
许可
根据以下之一获得许可
- Apache License,版本2.0 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
由您选择。
贡献
除非您明确声明,否则您提交的任何有意包含在本作品中的贡献,根据Apache-2.0许可证定义,应按上述方式双许可,不附加任何额外条款或条件。
依赖项
~0–43MB
~1.5M SLoC