cardkb-driver

Crates.iocardkb-driver
lib.rscardkb-driver
version1.0.2
created_at2025-12-17 07:23:56.770468+00
updated_at2025-12-17 07:33:59.408623+00
descriptionCardKB I2C driver (no_std) - embedded-hal async I2C
homepage
repositoryhttps://gitlab.com/networkjarwy/cardkb-driver.git
max_upload_size
id1989495
size3,511
Jaroslav Vízner (networkjarwy1)

documentation

README

Cardkb driver for no_std rust

example

use cardkb_driver::CardKb;
use esp_hal::i2c::master::I2c;

esp_bootloader_esp_idf::esp_app_desc!();

#[esp_hal_embassy::main]
async fn main(spawner: Spawner){
    esp_alloc::heap_allocator!(size: 64 * 1024);
    
    let config = esp_hal::Config::default().with_cpu_clock(CpuClock::max());
    let peripherals = esp_hal::init(config);
    
    let timer0 = SystemTimer::new(peripherals.SYSTIMER);
    esp_hal_embassy::init(timer0.alarm0);
    
    let mut i2c = I2c::new(
        peripherals.I2C0,
        esp_hal::i2c::master::Config::default().with_frequency(Rate::from_khz(400)),
    )
    .unwrap()
    .with_sda(peripherals.GPIO17)
    .with_scl(peripherals.GPIO18)
    .into_async();
    
    let kb = CardKb::new(0x5F);

    loop {
        if let Ok(Some(key)) = kb.read_key(&mut i2c).await {
            let c = key as char;
            info!("key: {}", c);
        }

        Timer::after(Duration::from_millis(20)).await;
    }
}
Commit count: 0

cargo fmt