2个版本

0.2.1 2024年8月1日
0.2.0 2024年6月1日
0.1.3 2024年5月13日
0.0.2 2024年3月30日

#1490 in 嵌入式开发

Download history 183/week @ 2024-05-03 286/week @ 2024-05-10 24/week @ 2024-05-17 4/week @ 2024-05-24 180/week @ 2024-05-31 14/week @ 2024-06-07 3/week @ 2024-06-14 12/week @ 2024-06-28 69/week @ 2024-07-05 85/week @ 2024-07-26 33/week @ 2024-08-02

118 每月下载量

GPL-3.0 许可证

23KB
279 代码行

SSD1315

SSD1315 OLED驱动程序。

兼容性

此驱动程序是为SSD1315开发的,但也与SSD1306兼容。请注意,SSD1315不支持类似6800和8080的并行端口,这意味着在使用此crate时不能使用并行端口。

由于从头开始开发,此驱动程序仅支持1.0.0版本的embedded-hal提供的新功能,相反,这意味着此驱动程序与未升级的hal库(例如,stm32f1xx-hal,尚未升级到embedded-hal 1.0.0)不兼容。

示例

以下是一个完整示例(MCU型号为STM32F411CEU6)

#![deny(unsafe_code)]
#![no_std]
#![no_main]

use cortex_m::asm::nop;
use cortex_m_rt::entry;
use embedded_graphics::{
    pixelcolor::BinaryColor,
    prelude::*,
    primitives::{Circle, PrimitiveStyle},
};
use panic_halt as _;
use ssd1315::*;
use stm32f4xx_hal::{
    i2c::{DutyCycle, Mode},
    pac,
    prelude::*,
};

#[entry]
fn main() -> ! {
    let dp = pac::Peripherals::take().unwrap();

    let rcc = dp.RCC.constrain();
    let clocks = rcc.cfgr.freeze();

    let gpiob = dp.GPIOB.split();
    let (scl, sda) = (
        gpiob.pb8.into_alternate_open_drain(),
        gpiob.pb9.into_alternate_open_drain(),
    );

    let i2c = dp.I2C1.i2c(
        (scl, sda),
        Mode::fast(400000.Hz(), DutyCycle::Ratio2to1),
        &clocks,
    );

    let interface = interface::I2cDisplayInterface::new_interface(i2c);
    let config = config::Ssd1315DisplayConfig::preset_config();

    let mut display = Ssd1315::new(interface);
    display.set_custom_config(config);

    Circle::new(Point::new(0, 0), 40)
        .into_styled(PrimitiveStyle::with_fill(BinaryColor::On))
        .draw(&mut display)
        .unwrap();

    display.init_screen();
    display.flush_screen();

    loop {
        nop()
    }
}

许可证

此软件根据GPL-3.0许可证分发。

贡献

感谢您对此项目的贡献兴趣!如果您发现任何地方有错误或任何可以改进此项目并使其更有效的想法,请打开一个问题或提交一个拉取请求! :)

依赖关系

~620KB
~11K SLoC