3个不稳定版本
0.2.1 | 2023年4月4日 |
---|---|
0.2.0 | 2023年4月4日 |
0.1.0 | 2023年3月30日 |
#1417 in 嵌入式开发
每月 36 次下载
24KB
398 行
ST7567S 显示控制器驱动程序
此crate提供ST7567S显示控制器的驱动程序,可用于Rust嵌入式项目。
功能
- 通过
display_interface
crate支持I2C和SPI通信协议。 - 提供两种显示模式
- 直接写入模式(默认):此模式允许您通过调用
draw
方法直接写入显示内存。 - 缓冲模式:此模式允许您使用如
set_pixel
、clear
或embedded-graphics
crate中的方法修改内部缓冲区。一旦您做出更改,可以调用flush
方法将缓冲区写入显示。
- 直接写入模式(默认):此模式允许您通过调用
注意事项
- 此驱动程序旨在与更常见的128x64分辨率一起工作,而不是ST7567S控制器的原始132x65分辨率。
- 尚未测试SPI通信。
示例
直接写入模式
use st7567s::{
display::{DirectWriteMode, ST7567S},
interface::{I2CDisplayInterface, I2CInterface},
};
struct I2CStub;
impl embedded_hal::blocking::i2c::Write for I2CStub {
type Error = ();
fn write(&mut self, _addr: u8, _buf: &[u8]) -> Result<(), ()> {
Ok(())
}
}
let i2c = I2CStub;
let interface = I2CDisplayInterface::new(i2c);
let mut display = ST7567S::new(interface);
display.init().unwrap();
// Set all pixels to enabled state
display
.draw([0xff; 128 * 64 / 8].as_slice())
.unwrap();
缓冲模式 + embedded_graphics
use st7567s::{
display::{BufferedMode, ST7567S},
interface::{I2CDisplayInterface, I2CInterface},
};
use embedded_graphics::{
mono_font::{ascii::FONT_6X10, MonoTextStyleBuilder},
pixelcolor::BinaryColor,
prelude::*,
text::{Baseline, Text},
};
struct I2CStub;
impl embedded_hal::blocking::i2c::Write for I2CStub {
type Error = ();
fn write(&mut self, _addr: u8, _buf: &[u8]) -> Result<(), ()> {
Ok(())
}
}
let i2c = I2CStub;
let interface = I2CDisplayInterface::new(i2c);
let mut display = ST7567S::new(interface)
.into_buffered_graphics_mode();
display.init().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().unwrap();
感谢ssd1306
驱动程序作为示例。
许可证
根据您的选择,许可如下:
- Apache许可证2.0版 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
。
贡献
除非您明确声明,否则任何根据Apache-2.0许可证定义的,有意提交以包含在作品中的贡献,都将按上述方式双重许可,不附加任何额外的条款或条件。
依赖关系
~180KB