#嵌入式图形 #卡片 #电脑 #spi驱动程序 #cardputer #m5stack

无std m5cardputer

基于esp-idf-hal的M5Stack Card Computer板级支持

2个版本

0.1.1 2023年12月30日
0.1.0 2023年12月30日

#1875 in 嵌入式开发

GPL-3.0+

24KB
352

m5cardputer

Crates.io Crates.io

摘要

m5cardputer 提供了基于 esp-idf-hal 的 M5Stack Card Computer 板级支持。它实现了基于 mipidsi 的集成显示屏驱动程序,支持PWM背光调节,以及集成键盘的驱动程序。

使用示例

将此crate的依赖项添加到 Cargo.toml

[dependencies]
m5cardputer = "0.1"

然后,简单地构造一个 DisplayKeyboard

use esp_idf_svc::hal::{gpio::*, spi::*, units::*};
use embedded_graphics::{prelude::*, pixelcolor::Rgb565};
use m5cardputer::{display::Display, keyboard::Keyboard};
// Take ownership of peripherals
let dp = Peripherals::take().unwrap();

// Set up SPI driver
let input_pin: Option<AnyIOPin> = None;
let lcd_spi_drv = SpiDriver::new(dp.spi2, dp.pins.gpio36, dp.pins.gpio35, input_pin, &SpiDriverConfig::default()).unwrap();
let config = config::Config::new().data_mode(config::MODE_0).baudrate(MegaHertz(80).into()).write_only(true);
let lcd_spi = SpiDeviceDriver::new(lcd_spi_drv, Some(dp.pins.gpio37), &config).unwrap();

let mut disp = Display::new(lcd_spi, dp.pins.gpio34, dp.pins.gpio33, dp.pins.gpio38, dp.ledc.timer3, dp.ledc.channel7).unwrap();
disp.set_brightness(150).unwrap();
disp.clear(Rgb565::BLACK);

// Construct keyboard
let row_pins = (
    dp.pins.gpio13,
    dp.pins.gpio15,
    dp.pins.gpio3,
    dp.pins.gpio4,
    dp.pins.gpio5,
    dp.pins.gpio6,
    dp.pins.gpio7
);
let address_pins = (
    dp.pins.gpio8,
    dp.pins.gpio9,
    dp.pins.gpio11
);
let keyboard = Keyboard::new(row_pins, address_pins).unwrap();
let keys = keyboard.get_keys();
for key in keys {
    println!("{}", key);
}

现在,您可以使用 disp 作为嵌入式图形的 DrawTarget,并通过调用 keyboard.get_keys() 获取键盘键的访问权限。

错误报告和功能请求

欢迎为此项目做出贡献。您可以在 sourcehut 上找到 代码仓库

依赖项

~10–19MB
~265K SLoC