10个版本
0.2.0 | 2020年6月10日 |
---|---|
0.1.8 | 2018年7月16日 |
0.1.4 | 2018年6月8日 |
0.1.3 | 2018年3月18日 |
0.1.2 | 2018年2月18日 |
#1575 in 嵌入式开发
125KB
360 行
pcd8544 - 显示驱动crate
该crate实现了Write
特质,因此可以写入文本到显示屏。
如何使用
下面是一个如何创建新的PCD8544实例、初始化并写入“Hello World”到它的示例。
fn main() -> ! {
let mut cp: cortex_m::Peripherals = cortex_m::Peripherals::take().unwrap();
let mut peripherals = stm32f103xx::Peripherals::take().unwrap();
let mut rcc = peripherals.RCC.constrain();
let mut gpioa = peripherals.GPIOA.split(&mut rcc.apb2);
let mut gpiob = peripherals.GPIOB.split(&mut rcc.apb2);
let mut pcd_gnd = gpiob.pb12.into_push_pull_output(&mut gpiob.crh);
let mut pcd_light = gpiob.pb13.into_push_pull_output(&mut gpiob.crh);
let mut pcd_vcc = gpiob.pb14.into_push_pull_output(&mut gpiob.crh);
let mut pcd_clk = gpiob.pb15.into_push_pull_output(&mut gpiob.crh);
let mut pcd_din = gpioa.pa8 .into_push_pull_output(&mut gpioa.crh);
let mut pcd_dc = gpioa.pa9 .into_push_pull_output(&mut gpioa.crh);
let mut pcd_ce = gpioa.pa10.into_push_pull_output(&mut gpioa.crh);
let mut pcd_rst = gpioa.pa11.into_push_pull_output(&mut gpioa.crh);
pcd_gnd .set_low();
pcd_light.set_high();
pcd_vcc .set_high();
let mut display = PCD8544::new(
pcd_clk,
pcd_din,
pcd_dc,
pcd_ce,
pcd_rst,
pcd_light,
).expect("Infallible cannot fail");
display.reset().expect("Infallible cannot fail");;
writeln!(display, "Hello World");
loop {}
}
示例中的代码是从一个实际项目中复制粘贴的,但在这个特定组合中没有经过测试。
实际操作
下面的图片显示了显示屏显示从onewire ds18b20传感器读取的温度。