#embedded-hal-i2c #i2c #embedded-hal #debugging #bus #helper #busses

buslogger

用于调试嵌入式-hal 总线的辅助库

1 个不稳定版本

0.1.0 2020年5月10日

#1707硬件支持

MIT 许可证

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