1 个不稳定版本
0.1.0 | 2020年5月10日 |
---|
#1707 在 硬件支持
7KB
114 行
buslogger
buslogger 是一个用于 嵌入式-hal Rust 应用的小型辅助库。它通过将每个读写事务记录到单独的日志设备来帮助调试总线接口。
目前,它仅支持I2C总线,但计划支持其他总线类型。
buslogger 通过在实现i2c特质的结构体和实现core::fmt::Write特质的结构体之间移动来工作。然后它返回一个新的实现i2c特质的i2c结构体,类似于shared_bus crate。
示例用法
use buslogger::BusLogger;
let i2c = /* some struct that implements read / write / write_read traits */;
let serial = /* some struct that implements core::fmt::Write */;
let i2c = BusLogger::new(serial,i2c);
let mut buf : [u8 ; 1] = [0;1];
// use the i2c device like normal
i2c.write(0x42, &[0x40,0x80]).ok();
i2c.write_read(0x42, &[0x40], &mut buf).ok();
i2c.read(0x42, &mut buf).ok();
i2c.write_read(0x42, &[0x40], &mut buf).ok(); //assume this fails with error i2c::Error::Nack
您将在跟踪中看到的示例输出
a[42] w[40, 80]
a[42] w[00] r[01]
a[42] r[00]
a[42] w[01] Nack
依赖项
~71KB