#rgb #lcd-display #lcd1602 #no-std

no-std lcd1602rgb-rs

为waveshare LCD1602-RGB显示屏模块的本地Rust驱动程序

3个不稳定版本

0.2.0 2023年1月30日
0.1.1 2023年1月29日
0.1.0 2023年1月29日

#673嵌入式开发

MIT 许可证

13KB
170

LCD1602RGB 驱动器

用于LCD1602RGB段式LCD的驱动器,它不适用于其他段式LCD,但你可能能够使用此驱动器实现一些基本功能。

我编写此驱动器是为了个人使用,并将维护它并在需要时实现缺失的指令,特别是关于我计划工作的应用程序。不过,欢迎提交拉取请求。

这是我第一个真正的嵌入式Rust项目,我使用了以下资源

使用方法

Raspberry Pi Pico

按照以下说明操作: https://github.com/rp-rs/rp2040-project-template

Cargo.toml 中包含最新版本

[dependencies]
lcd1602rgb-rs = "0.1.0"

在rp2040项目模板的 main.rs 中使用此示例代码

let mut scl_pin = pins.gpio15.into_mode::<gpio::FunctionI2C>();
let mut sda_pin = pins.gpio14.into_mode::<gpio::FunctionI2C>();
let i2c_dev = i2c::I2C::new_controller(pac.I2C1, sda_pin, scl_pin, 400_u32.kHz(), &mut pac.RESETS, clocks.system_clock.freq());
let mut display_controller = Display::new(i2c_dev, delay).unwrap();
display_controller.write_text("Hello, World! How are you?").unwrap();
let mut r: u8 = 0;
let mut g: u8 = 255;
let mut b: u8 = 128;
let mut r_set = true;
let mut g_set = true;
let mut b_set = true;

loop {
    if r == 255 {
        r_set = false;
    } else if r == 0 {
        r_set = true;
    }
    if r_set {
        r += 1;
    } else {
        r -= 1;
    }
    if g == 255 {
        g_set = false;
    } else if g == 0 {
        g_set = true;
    }
    if g_set {
        g += 1;
    } else {
        g -= 1;
    }
    if b == 255 {
        b_set = false;
    } else if b == 0 {
        b_set = true;
    }
    if b_set {
        b += 1;
    } else {
        b -= 1;
    }
    display_controller.delay.delay_ms(10);
    display_controller.backlight_colour(r, g, b).unwrap();
}

待办事项

  • ✅ 移除平台特定依赖项。 238d4c0
  • ⬜️ 根据规格说明书实现开关。
  • ⬜️ 实现剩余的缺失指令。
  • ⬜️ 验证AiP31068在向一行写入多于16个字符时的行为。
    • ⬜️ 适当调整功能。
  • ⬜️ 代码清理。
    • ⬜️ 提高一致性。
    • ⬜️ 整理。
  • ⬜️ 在 README.md 中为复选框找到替代表情。
  • ⬜️ 创建用于其他平台的说明。
  • ⬜️ 改进Raspberry Pi Pico使用说明。

依赖项

~71KB