#display #lcd-display #lcd #embedded-hal-driver #abstraction-layer

无需std pcd8544

使用嵌入式_hal作为抽象层与PCD8544通信和写入的实现。进行中

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 嵌入式开发

MIT许可证

125KB
360

pcd8544 - 显示驱动crate

该crate实现了Write特质,因此可以写入文本到显示屏。

Build Status License Crates.io Documentation PRs Welcome

如何使用

下面是一个如何创建新的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传感器读取的温度。

依赖项