ssd1306
所属分类:Rust编程
开发工具:Rust
文件大小:0KB
下载次数:4
上传日期:2023-10-05 11:57:54
上 传 者:
sh-1993
说明: SSD1306 OLED驱动程序,
(SSD1306 OLED driver,)
文件列表:
.cargo/ (0, 2023-11-08)
.cargo/config (185, 2023-11-08)
.circleci/ (0, 2023-11-08)
.circleci/config.yml (2568, 2023-11-08)
CHANGELOG.md (11104, 2023-11-08)
Cargo.toml (1537, 2023-11-08)
LICENSE-APACHE (10847, 2023-11-08)
LICENSE-MIT (1056, 2023-11-08)
build.rs (477, 2023-11-08)
build.sh (651, 2023-11-08)
doc/ (0, 2023-11-08)
doc/SSD1306.pdf (1876686, 2023-11-08)
doc/SSD1306B_rev1.1.pdf (1078911, 2023-11-08)
examples/ (0, 2023-11-08)
examples/bmp_i2c.rs (2509, 2023-11-08)
examples/dvd.bmp (2826, 2023-11-08)
examples/graphics.rs (3177, 2023-11-08)
examples/graphics_i2c.rs (2819, 2023-11-08)
examples/graphics_i2c_128x32.rs (2797, 2023-11-08)
examples/graphics_i2c_72x40.rs (3138, 2023-11-08)
examples/image_i2c.rs (2134, 2023-11-08)
examples/noise_i2c.rs (2071, 2023-11-08)
examples/pixelsquare.rs (2860, 2023-11-08)
examples/rotation_i2c.rs (2418, 2023-11-08)
examples/rtic_brightness.rs (6054, 2023-11-08)
examples/rtic_dvd.rs (5112, 2023-11-08)
examples/rust.bmp (8262, 2023-11-08)
examples/rust.png (723, 2023-11-08)
examples/rust.raw (512, 2023-11-08)
examples/terminal_i2c.rs (2010, 2023-11-08)
examples/text_i2c.rs (2343, 2023-11-08)
memory.x (139, 2023-11-08)
release.toml (581, 2023-11-08)
... ...
# SSD1306 driver
[![Build Status](https://circleci.com/gh/jamwaffles/ssd1306/tree/master.svg?style=shield)](https://circleci.com/gh/jamwaffles/ssd1306/tree/master)
[![Crates.io](https://img.shields.io/crates/v/ssd1306.svg)](https://crates.io/crates/ssd1306)
[![Docs.rs](https://docs.rs/ssd1306/badge.svg)](https://docs.rs/ssd1306)
[![CRIUS display showing the Rust logo](readme_banner.jpg?raw=true)](examples/image_i2c.rs)
I2C and SPI (4 wire) driver for the SSD1306 OLED display.
## [Documentation](https://docs.rs/ssd1306)
## [Changelog](CHANGELOG.md)
## [Examples](examples)
This crate uses [`probe-run`](https://crates.io/crates/probe-run) to run the examples. Once set up,
it should be as simple as `cargo run --example --release`.
From [`examples/image_i2c.rs`](examples/image_i2c.rs):
```rust
#![no_std]
#![no_main]
use cortex_m_rt::{entry, exception, ExceptionFrame};
use embedded_graphics::{
image::{Image, ImageRaw},
pixelcolor::BinaryColor,
prelude::*,
};
use panic_halt as _;
use ssd1306::{prelude::*, I2CDisplayInterface, Ssd1306};
use stm32f1xx_hal::{
i2c::{BlockingI2c, DutyCycle, Mode},
prelude::*,
stm32,
};
#[entry]
fn main() -> ! {
let dp = stm32::Peripherals::take().unwrap();
let mut flash = dp.FLASH.constrain();
let mut rcc = dp.RCC.constrain();
let clocks = rcc.cfgr.freeze(&mut flash.acr);
let mut afio = dp.AFIO.constrain(&mut rcc.apb2);
let mut gpiob = dp.GPIOB.split(&mut rcc.apb2);
let scl = gpiob.pb8.into_alternate_open_drain(&mut gpiob.crh);
let sda = gpiob.pb9.into_alternate_open_drain(&mut gpiob.crh);
let i2c = BlockingI2c::i2c1(
dp.I2C1,
(scl, sda),
&mut afio.mapr,
Mode::Fast {
frequency: 400_000.hz(),
duty_cycle: DutyCycle::Ratio2to1,
},
clocks,
&mut rcc.apb1,
1000,
10,
1000,
1000,
);
let interface = I2CDisplayInterface::new(i2c);
let mut display = Ssd1306::new(interface, DisplaySize128x64, DisplayRotation::Rotate0)
.into_buffered_graphics_mode();
display.init().unwrap();
let raw: ImageRaw = ImageRaw::new(include_bytes!("./rust.raw"), 64);
let im = Image::new(&raw, Point::new(32, 0));
im.draw(&mut display).unwrap();
display.flush().unwrap();
loop {}
}
#[exception]
fn HardFault(ef: &ExceptionFrame) -> ! {
panic!("{:#?}", ef);
}
```
## License
Licensed under either of
- Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or
http://www.apache.org/licenses/LICENSE-2.0)
- MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)
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.
近期下载者:
相关文件:
收藏者: