#spi-bus #eeprom #st-microelectronics #spi #embedded-hal-driver

m95320

STMicroelectronics M95320 32-Kbit 串行 SPI 总线 EEPROM 驱动程序

7 个稳定版本

1.3.0 2024年1月11日
1.2.0 2024年1月11日
1.1.0 2024年1月11日
1.0.3 2023年5月9日
1.0.2 2022年9月27日

340嵌入式开发

每月 23 次下载

0BSD 许可证

18KB
271

m95320

crates.io docs.rs

embedded-hal Rust 驱动程序,用于 STMicroelectronics M95320 32-Kbit 串行 SPI 总线 EEPROM

一些功能尚未实现,基本的读写功能正常

此创建主要借鉴了 spi-memory 包:https://github.com/jonas-schievink/spi-memory

用法

将条目添加到您的 Cargo.toml

[dependencies]
m95320 = "1.0.2"

示例

在 Raspberry Pi 上使用 rppal

use rppal::gpio::Gpio;
use rppal::spi::{Bus, Mode, SlaveSelect, Spi};

use m95320::prelude::*;
use m95320::m95320::Flash;

const GPIO_MEMORY_CHIP_SELECT: u8 = 27;

fn main() {
    let gpio = Gpio::new().unwrap();
    let cs = gpio.get(GPIO_MEMORY_CHIP_SELECT).unwrap().into_output();
    let spi = Spi::new(Bus::Spi0, SlaveSelect::Ss0, 10_000_000, Mode::Mode0).unwrap();

    let mut flash = Flash::init(spi, cs).unwrap();

    let status = flash.read_status().expect("get status");
    println!("status registers: {:?}", status);

    let mut page_buffer: [u8; 32] = [0x0; 32];

    flash.erase_sectors(0, 2).expect("erase");

    let hello = String::from("hello memory!");
    for (i, byte) in hello.as_bytes().into_iter().enumerate() {
        page_buffer[i] = byte.clone();
    }

    flash.write_bytes(0, &mut page_buffer).expect("write");
    
    flash.read(0, &mut page_buffer).expect("read");
    println!("bytes read: {:?}", page_buffer);
}

有关如何使用此包的功能,请参阅 API 文档

依赖项

~195KB