3 个稳定版本

2.0.1 2024年3月26日
2.0.0 2024年1月20日
1.0.0 2023年10月25日

#182嵌入式开发

MIT 许可证

68KB
703

adxl345_driver2

这是一个用 Rust 编写的,基于 ADXL345ADXL346 类型的 3 轴数字加速度计的硬件驱动程序,使用 Rust 中的 embedded-hal I2cSpi 特性。这意味着它可以在实现 embedded-hal 特性的所有硬件层上运行。

尽管名称为 adxl345,但该驱动程序也应该可以与 ADXL346 设备一起使用,因为它们之间的唯一区别是物理封装,而不是内部工作原理。

此存储库是从 adxl345_driver 存储库派生出来的。此存储库仍然与原始 adxl345_driver 存储库兼容。

入门

您需要安装 Rust 的最新版本。

此存储库支持所有实现 embedded-hal I2cSpi 特性的硬件抽象层。这包括为 Raspberry Pi 的 [rppal] 驱动程序。但它不仅限于该平台。已知可以正确工作的平台包括带有 [rppal] 的 Raspberry Pi 和带有 [esp-idf-hal] 的 ESP32。但此存储库不仅限于这些 HAL 层。

使用存储库

您可以使用 cargo add 将驱动程序添加到您的 Cargo.toml

cargo add adxl345_driver2

或者您可以将驱动程序手动添加到您的 Cargo.toml

[dependencies]
adxl345_driver2 = "2"

示例

您可以在 examples 目录中找到示例。Raspberry Pi 的 I²C 和 SPI 示例可用。

要构建 I²C 示例,请首先在您的 Raspberry Pi 上的某个位置克隆此项目

git clone https://git.bues.ch/git/adxl345_driver2

接下来执行以下操作以构建示例

cd adxl345_driver2
cargo build --example rppal-i2c

最后执行示例

sudo ./target/debug/examples/rppal-i2c

如果您的设备已通过示例期望的主 I²C 连接,您应该在终端中看到一系列 x、y、z 值。

输出示例

axis: {'x': 1.6083, 'y': 0.0392, 'z': 8.7868} m/s²
axis: {'x': 1.6867, 'y': 0.1177, 'z': 8.7868} m/s²
axis: {'x': 1.6475, 'y': 0.1177, 'z': 8.8260} m/s²
...

no_std

此crate可用于no_std环境。如果想要在无需std库的情况下构建,只需启用no_std功能。

目前,no_std仅禁用了AdxlErrorstd::error::Error实现。

[dependencies]
adxl345_driver2 = { version = "2", features = ["no_std"] }

待办事项

  • 目前,大多数驱动程序都作为一系列特质的provided方法实现。这比所需的要复杂。而且它还将低级总线访问例程暴露给用户API。最好是拥有两个基于特质的低级总线访问结构体,分别针对I²C和SPI,然后实现一个泛型于此特质的驱动程序结构体。这个变更的问题在于它是用户可见的API变更。因此,我们现在会保留旧的实现。

许可证

所有代码文件均受MIT许可证的约束。您可以在LICENSE文件中找到许可证的副本。

所有附加文档,如本README,均受CC-BY-SA / 创意共享署名-相同方式共享 4.0 国际许可证的约束。

依赖关系

~1.5MB
~39K SLoC