wasm-embedded-hal 0.4.0

WASM embedded-hal implementation

use wasm_embedded_hal::spi::*;
use embedded_hal::spi::blocking::{SpiBus as _, SpiBusRead as _, SpiBusWrite as _};

fn main() {
    println!("Opening SPI device");

    let mut s = Spi::init(0, 4_000_000, -1, -1, -1, -1).unwrap();

    println!("SPI Write");
    let a = [0xaa, 0xbb, 0xcc];
    s.write(&a).unwrap();

    println!("SPI read");
    let mut b = [0x00; 5];
    s.read(&mut b).unwrap();
    assert_eq!(b, [0xab; 5]);

    println!("SPI transfer inplace");
    let mut b = [0xaa, 0xbb, 0xcc, 0xdd];
    s.transfer_in_place(&mut b).unwrap();
    println!("RX data: {:02x?}", b);
    assert_eq!(&b, &[0x11, 0x22, 0x33, 0x44]);

    println!("SPI transfer");
    let w = [0xaa, 0xbb, 0xcc, 0xdd];
    let mut r = [0x00; 4];
    s.transfer(&mut r, &w).unwrap();
    println!("RX data: {:02x?}", r);
    assert_eq!(&r, &[0x11, 0x22, 0x33, 0x44]);

    println!("SPI deinit");
    s.deinit().unwrap();
}