pcd8544

Crates.iopcd8544
lib.rspcd8544
version0.2.0
sourcesrc
created_at2018-02-18 01:29:39.039182
updated_at2020-06-10 14:00:07.002921
descriptionImplementation to communicate and write to PCD8544 using embedded_hal as abstraction layer. WIP
homepage
repositoryhttps://github.com/kellerkindt/pcd8544.git
max_upload_size
id51660
size143,354
(kellerkindt)

documentation

README

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.

Commit count: 40

cargo fmt