12个版本 (6个重大变更)
0.7.2 | 2024年5月23日 |
---|---|
0.7.0 | 2024年1月18日 |
0.6.1 | 2023年12月27日 |
0.6.0 | 2023年7月10日 |
0.2.0 | 2018年11月22日 |
#404 在 嵌入式开发
788 每月下载量
用于 7 个crate(6个直接使用)
44KB
552 行
Rust 24x EEPROM 驱动程序
这是一个基于 embedded-hal
特性的24x系列串行EEPROM的平台无关Rust驱动程序。
此驱动程序允许您
- 从内存地址读取单个字节。参见:
read_byte()
。 - 从内存地址开始读取字节数组。参见:
read_data()
。 - 读取当前内存地址(请参阅说明)。参见:
read_current_address()
。 - 将字节写入内存地址。参见:
write_byte()
。 - 将字节数组(最多一个内存页)写入内存地址。参见:
write_page()
。 - 读取
CSx
变体设备的工厂编程的唯一串行号。参见:read_unique_serial()
。 - 通过
Eeprom24xTrait
在通用代码中使用设备。
至少可以与以下设备一起使用。
设备
这些设备提供一定数量的串行电擦写和可编程只读存储器(EEPROM),组织为一定数量的8位单词。设备的级联功能允许最多8个设备共享一个公共的2线总线。这些设备针对在低功耗和低电压操作至关重要的许多工业和商业应用进行了优化。
设备 | 存储位 | 8位单词 | 页面大小 | 数据表 |
---|---|---|---|---|
24x00 | 128位 | 16 | N/A | 24C00 |
24x01 | 1 Kbit | 128 | 8 字节 | AT24C01 |
M24x01 | 1 Kbit | 128 | 16 字节 | M24C01 |
24x02 | 2 Kbit | 256 | 8 字节 | AT24C02 |
M24x02 | 2 Kbit | 256 | 16 字节 | M24C02 |
24x04 | 4 Kbit | 512 | 16 字节 | AT24C04 |
24x08 | 8 Kbit | 1,024 | 16 字节 | AT24C08 |
24x16 | 16 Kbit | 2,048 | 16 字节 | AT24C16 |
24x32 | 32 Kbit | 4,096 | 32 字节 | AT24C32 |
24x64 | 64 Kbit | 8,192 | 32 字节 | AT24C64 |
24x128 | 128 Kbit | 16,384 | 64 字节 | AT24C128 |
24x256 | 256 Kbit | 32,768 | 64 字节 | AT24C256 |
24x512 | 512 Kbit | 65,536 | 128 字节 | AT24C512 |
24xM01 | 1 Mbit | 131,072 | 256 字节 | AT24CM01 |
24xM02 | 2 Mbit | 262,144 | 256 字节 | AT24CM02 |
用法
要使用此驱动程序,请导入此包和嵌入式硬件实现,然后实例化适当的设备。以下示例中创建AT24C256设备实例作为示例。可以使用类似的方法创建其他设备: Eeprom24x::new_24x64(...)
.
请在此存储库中找到使用硬件的附加示例:driver-examples
use eeprom24x::{Eeprom24x, SlaveAddr};
use embedded_hal::blocking::delay::DelayMs;
use linux_embedded_hal::{Delay, I2cdev};
fn main() {
let dev = I2cdev::new("/dev/i2c-1").unwrap();
let address = SlaveAddr::default();
let mut eeprom = Eeprom24x::new_24x256(dev, address);
let memory_address = 0x1234;
let data = 0xAB;
eeprom.write_byte(memory_address, data).unwrap();
Delay.delay_ms(5u16);
let read_data = eeprom.read_byte(memory_address).unwrap();
println!(
"Read memory address: {}, retrieved content: {}",
memory_address, &read_data
);
let _dev = eeprom.destroy(); // Get the I2C device back
}
特性
defmt-03
要启用defmt(版本0.3.x
)支持,在指定对eeprom24x
的依赖项时,请添加功能“defmt-03
”。
[dependencies]
eeprom24x = { version = "0.7.2", features = ["defmt-03"] }
支持
对于问题、问题、功能请求和其他更改,请在github项目中提交问题。
许可
根据您选择以下任一项许可
- Apache许可证第2版(《LICENSE-APACHE》或https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证(《LICENSE-MIT》或http://opensource.org/licenses/MIT)
由您选择。
贡献
除非您明确声明,否则您有意提交的任何贡献,根据Apache-2.0许可证的定义,将根据上述许可证双重许可,无需任何其他条款或条件。
依赖项
~235KB