Skip to content

Commit 6887568

Browse files
Use display-interface for display communication take 2 (#116)
* Use display-interface for display communication take 2 Signed-off-by: Daniel Egger <[email protected]> * Update Cargo.toml Co-Authored-By: James Waples <[email protected]> * Update src/builder.rs Co-Authored-By: James Waples <[email protected]> * Update src/builder.rs Co-Authored-By: James Waples <[email protected]> * Fix link Signed-off-by: Daniel Egger <[email protected]> Co-authored-by: James Waples <[email protected]>
1 parent 6dfba59 commit 6887568

28 files changed

+182
-342
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
### Changed
1010

11+
- **(breaking)** [#116](https://github.com/jamwaffles/ssd1306/pull/116) Replace custom I2C and SPI interfaces by generic [`display-interface`](https://crates.io/crates/display-interface)
1112
- **(breaking)** [#113](https://github.com/jamwaffles/ssd1306/pull/113) Removed public `send_bounded_data` from DisplayInterface and implementations
1213

1314
## [0.3.1] - 2020-03-21

Cargo.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ targets = [ "thumbv7m-none-eabi", "thumbv7em-none-eabihf" ]
1919

2020
[dependencies]
2121
embedded-hal = "0.2.3"
22+
display-interface = "0.2"
23+
display-interface-i2c = "0.2"
24+
display-interface-spi = "0.2"
2225

2326
[dependencies.embedded-graphics]
2427
optional = true

README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ use embedded_graphics::{
3131
prelude::*,
3232
};
3333
use panic_halt as _;
34-
use ssd1306::{prelude::*, Builder};
34+
use ssd1306::{prelude::*, Builder, I2CDIBuilder};
3535
use stm32f1xx_hal::{
3636
i2c::{BlockingI2c, DutyCycle, Mode},
3737
prelude::*,
@@ -70,7 +70,8 @@ fn main() -> ! {
7070
1000,
7171
);
7272

73-
let mut disp: GraphicsMode<_> = Builder::new().connect_i2c(i2c).into();
73+
let interface = I2CDIBuilder::new().init(i2c);
74+
let mut disp: GraphicsMode<_> = Builder::new().connect(interface).into();
7475

7576
disp.init().unwrap();
7677

examples/bmp_i2c.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ use embedded_graphics::{
2828
prelude::*,
2929
};
3030
use panic_halt as _;
31-
use ssd1306::{prelude::*, Builder};
31+
use ssd1306::{prelude::*, Builder, I2CDIBuilder};
3232
use stm32f1xx_hal::{
3333
i2c::{BlockingI2c, DutyCycle, Mode},
3434
prelude::*,
@@ -68,8 +68,8 @@ fn main() -> ! {
6868
1000,
6969
);
7070

71-
let mut disp: GraphicsMode<_> = Builder::new().connect_i2c(i2c).into();
72-
71+
let interface = I2CDIBuilder::new().init(i2c);
72+
let mut disp: GraphicsMode<_> = Builder::new().connect(interface).into();
7373
disp.init().unwrap();
7474

7575
let bmp =

examples/graphics.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,8 @@ fn main() -> ! {
7474
&mut rcc.apb2,
7575
);
7676

77-
let mut disp: GraphicsMode<_> = Builder::new().connect_spi(spi, dc).into();
77+
let interface = display_interface_spi::SPIInterfaceNoCS::new(spi, dc);
78+
let mut disp: GraphicsMode<_> = Builder::new().connect(interface).into();
7879

7980
disp.reset(&mut rst, &mut delay).unwrap();
8081
disp.init().unwrap();

examples/graphics_i2c.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ use embedded_graphics::{
2525
style::PrimitiveStyleBuilder,
2626
};
2727
use panic_halt as _;
28-
use ssd1306::{prelude::*, Builder};
28+
use ssd1306::{prelude::*, Builder, I2CDIBuilder};
2929
use stm32f1xx_hal::{
3030
i2c::{BlockingI2c, DutyCycle, Mode},
3131
prelude::*,
@@ -64,8 +64,8 @@ fn main() -> ! {
6464
1000,
6565
);
6666

67-
let mut disp: GraphicsMode<_> = Builder::new().connect_i2c(i2c).into();
68-
67+
let interface = I2CDIBuilder::new().init(i2c);
68+
let mut disp: GraphicsMode<_> = Builder::new().connect(interface).into();
6969
disp.init().unwrap();
7070

7171
let yoffset = 20;

examples/graphics_i2c_128x32.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ use embedded_graphics::{
2525
style::PrimitiveStyleBuilder,
2626
};
2727
use panic_halt as _;
28-
use ssd1306::{prelude::*, Builder};
28+
use ssd1306::{prelude::*, Builder, I2CDIBuilder};
2929
use stm32f1xx_hal::{
3030
i2c::{BlockingI2c, DutyCycle, Mode},
3131
prelude::*,
@@ -64,9 +64,10 @@ fn main() -> ! {
6464
1000,
6565
);
6666

67+
let interface = I2CDIBuilder::new().init(i2c);
6768
let mut disp: GraphicsMode<_> = Builder::new()
6869
.size(DisplaySize::Display128x32)
69-
.connect_i2c(i2c)
70+
.connect(interface)
7071
.into();
7172
disp.init().unwrap();
7273

examples/graphics_i2c_72x40.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ use embedded_graphics::{
2525
style::PrimitiveStyleBuilder,
2626
};
2727
use panic_halt as _;
28-
use ssd1306::{prelude::*, Builder};
28+
use ssd1306::{prelude::*, Builder, I2CDIBuilder};
2929
use stm32f1xx_hal::{
3030
i2c::{BlockingI2c, DutyCycle, Mode},
3131
prelude::*,
@@ -64,11 +64,11 @@ fn main() -> ! {
6464
1000,
6565
);
6666

67+
let interface = I2CDIBuilder::new().init(i2c);
6768
let mut disp: GraphicsMode<_> = Builder::new()
6869
.size(DisplaySize::Display72x40)
69-
.connect_i2c(i2c)
70+
.connect(interface)
7071
.into();
71-
7272
disp.init().unwrap();
7373

7474
let size = 10;

examples/image_i2c.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ use embedded_graphics::{
3030
prelude::*,
3131
};
3232
use panic_halt as _;
33-
use ssd1306::{prelude::*, Builder};
33+
use ssd1306::{prelude::*, Builder, I2CDIBuilder};
3434
use stm32f1xx_hal::{
3535
i2c::{BlockingI2c, DutyCycle, Mode},
3636
prelude::*,
@@ -69,8 +69,8 @@ fn main() -> ! {
6969
1000,
7070
);
7171

72-
let mut disp: GraphicsMode<_> = Builder::new().connect_i2c(i2c).into();
73-
72+
let interface = I2CDIBuilder::new().init(i2c);
73+
let mut disp: GraphicsMode<_> = Builder::new().connect(interface).into();
7474
disp.init().unwrap();
7575

7676
let raw: ImageRaw<BinaryColor> = ImageRaw::new(include_bytes!("./rust.raw"), 64, 64);

examples/noise_i2c.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
use cortex_m_rt::{entry, exception, ExceptionFrame};
2323
use panic_halt as _;
2424
use rand::prelude::*;
25-
use ssd1306::{mode::displaymode::DisplayModeTrait, prelude::*, Builder};
25+
use ssd1306::{mode::displaymode::DisplayModeTrait, prelude::*, Builder, I2CDIBuilder};
2626
use stm32f1xx_hal::{
2727
i2c::{BlockingI2c, DutyCycle, Mode},
2828
prelude::*,
@@ -61,8 +61,8 @@ fn main() -> ! {
6161
1000,
6262
);
6363

64-
let mut disp: GraphicsMode<_> = Builder::new().connect_i2c(i2c).into();
65-
64+
let interface = I2CDIBuilder::new().init(i2c);
65+
let mut disp: GraphicsMode<_> = Builder::new().connect(interface).into();
6666
disp.init().unwrap();
6767

6868
let mut props = disp.release();

0 commit comments

Comments
 (0)