12个不稳定版本 (4个破坏性版本)
0.5.0 | 2024年5月22日 |
---|---|
0.4.0 | 2024年5月20日 |
0.3.1 | 2023年11月12日 |
0.3.0 | 2023年8月16日 |
0.1.3 | 2022年8月16日 |
#149 in 嵌入式开发
每月31次下载
86KB
875 行
st7565
这个软件包旨在提供一个与嵌入式图形库兼容的基于ST7565芯片集的显示器驱动程序。
示例
以下示例适用于连接到DOGM132W-5显示器和nRF52840微控制器的DOGM132W-5显示器。
请注意SPI的MODE_3
模式。DOGM132W-5显示器期望时钟配置为CPOL=1
和CPHA=1
,这也称为SPI模式3
。
// Create DOGM132W-5 spi bus
let disp_spi = SPIInterface::new(
hal::Spim::new(
peripherals.SPIM0,
hal::spim::Pins {
sck: disp_scl,
mosi: Some(disp_si),
miso: None,
},
hal::spim::Frequency::M8,
hal::spim::MODE_3,
0,
),
disp_a0,
disp_cs,
);
// Create DOGM132W-5 display driver
let mut page_buffer = GraphicsPageBuffer::new();
let mut disp = ST7565::new(disp_spi, DOGM132W5).into_graphics_mode(&mut page_buffer);
disp.reset(&mut disp_rst, &mut timer).unwrap();
disp.flush().unwrap();
disp.set_display_on(true).unwrap();
// Draw on it using the embedded_graphics library
Circle::new(Point::new(10, 6), 20)
.into_styled(PrimitiveStyle::with_stroke(BinaryColor::On, 2))
.draw(&mut disp)
.unwrap();
disp.flush().unwrap();
请注意DOGM132W5
对象。这是一个包含所有需要应用于ST7565芯片的显示特定配置选项的显示规范。
此外,请注意调用into_graphics_mode()
,它将驱动程序从其初始模式切换到嵌入式图形
驱动程序模式。然后可以将disp
对象用作DrawTarget
在嵌入式图形
调用中。
绘制完成后,必须发出一个flush()
调用,以便实际将修改后的数据发送到显示器。
添加对新ST7565基于显示器的支持
上述示例在[ST7565::new()
]调用中使用DOGM132W5
结构。
为了用不同的显示器初始化ST7565
驱动程序结构,必须创建一个新的显示规范。这可以通过创建一个实现DisplaySpecs
特质的空结构来完成。
例如,DOGM132W5
结构体的定义如下
pub struct DOGM132W5;
impl DisplaySpecs<132, 32, 4> for DOGM132W5 {
const FLIP_ROWS: bool = false;
const FLIP_COLUMNS: bool = true;
const INVERTED: bool = false;
const BIAS_MODE_1: bool = false;
const POWER_CONTROL: PowerControlMode = PowerControlMode {
booster_circuit: true,
voltage_regulator_circuit: true,
voltage_follower_circuit: true,
};
const VOLTAGE_REGULATOR_RESISTOR_RATIO: u8 = 0b011;
const ELECTRONIC_VOLUME: u8 = 0b011111;
const BOOSTER_RATIO: BoosterRatio = BoosterRatio::StepUp2x3x4x;
const COLUMN_OFFSET: u8 = 0;
}
相应的显示的确切值需要从显示手册中获取。
如果您为新显示创建了规范,请在 https://github.com/Finomnis/st7565/pulls 上创建一个拉取请求,以便将其提供给公众。
依赖项
~560KB