#embedded #display #lcd #embedded-hal-driver #pcd8544

no-std pcd8544

Implementation to communicate and write to PCD8544 using embedded_hal as abstraction layer. WIP

10 releases

0.2.0 Jun 10, 2020
0.1.8 Jul 16, 2018
0.1.4 Jun 8, 2018
0.1.3 Mar 18, 2018
0.1.2 Feb 18, 2018

#15 in #lcd

Download history 10/week @ 2021-02-20 2/week @ 2021-02-27 3/week @ 2021-03-13 30/week @ 2021-03-20 20/week @ 2021-03-27 22/week @ 2021-04-03 11/week @ 2021-04-10 26/week @ 2021-04-17 10/week @ 2021-05-01 10/week @ 2021-05-15 10/week @ 2021-06-05

51 downloads per month

MIT license

125KB
360 lines

pcd8544 - Display driver crate

This crate implements the Write trait so that one can write text to the display.

Build Status License Crates.io Documentation PRs Welcome

How to use

Below is an example how to create a new PCD8544 instance, initialize and write "Hello World" onto it.

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 {}
}

The code from the example is copy&pasted from a working project, but not tested in this specific combination.

In action

The picture below shows the display to showing the temperature from the onewire ds18b20 sensor.

Dependencies