sh1106 0.3.0-alpha.2

I2C driver for the SH1106 OLED display controller
Documentation

SH1106 driver

Build Status

SH116 display module showing the Rust logo

I2C driver for the SH1106 OLED display written in 100% Rust

Documentation

From examples/text.rs:

// ...snip, see examples/text.rs for runnable code ...

let i2c = BlockingI2c::i2c1(
    dp.I2C1,
    (scl, sda),
    &mut afio.mapr,
    Mode::Fast {
        frequency: 400_000,
        duty_cycle: DutyCycle::Ratio2to1,
    },
    clocks,
    &mut rcc.apb1,
    1000,
    10,
    1000,
    1000,
);

let mut disp: GraphicsMode<_> = Builder::new().connect_i2c(i2c).into();

disp.init().unwrap();
disp.flush().unwrap();

disp.draw(
    Font6x8::render_str("Hello world!")
        .with_stroke(Some(1u8.into()))
        .into_iter(),
);
disp.draw(
    Font6x8::render_str("Hello Rust!")
        .with_stroke(Some(1u8.into()))
        .translate(Coord::new(0, 16))
        .into_iter(),
);

disp.flush().unwrap();

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.