#加速度计 #模拟设备 #MEMS #ADI

无需std adi-adxl355-async

ADXL355加速度计的嵌入式-hal-async驱动程序

3个版本 (1个稳定版)

1.0.0 2024年1月19日
0.2.0 2023年10月6日
0.1.0 2023年7月17日

#1536 in 嵌入式开发

Apache-2.0

83KB
1.5K SLoC

ADXL355异步驱动程序

适用于ADXL355加速度计的平台无关的Rust异步驱动程序。

产品信息

ADXL355是一款低噪声、低漂移、低功耗的3轴MEMS加速度计。

更多信息请参阅产品网页及其数据手册

最小支持的Rust版本(MSRV)

本crate保证在稳定Rust 1.75及更高版本上编译。

用法

此驱动程序依赖于HAL的实现,该实现实现了embedded_hal_async::spi::SpiDeviceembedded_hal_async::i2c::I2c traits。

在您的Cargo.toml文件中将此crate添加为依赖项

[dependencies.adi-adxl355-async]
version = "<version>"
feature = ["defmt"] #optionally activate defmt feature

驱动程序的基本用法如下

use adi_adxl355_async::{Adxl355, Config as Adxl355Config};

//The ADXL355 driver supports SPI and I2C protocols:

// After setting up a embedded_hal_async::spi::SpiDevice implementation named spi_dev,
// you can create an ADXL355 using the SPI protocol:
let mut acc = Adxl355::new_spi_with_config(spi_dev, Adxl355Config::default()).await?;
// After setting up a embedded_hal_async::i2c::I2c implementation named i2c_dev,
// you can create an ADXL355 using the I2C protocol, its I2C address must also be provided:
let mut acc = Adxl355::new_i2c_with_config(i2c_dev, device_address,Adxl355Config::default()).await?;

let dev_id = acc.get_device_id().await?;

println!("Device ID is {:X}", dev_id);

acc.set_measurement_mode().await?;

let raw_data = acc.get_raw_accel_sample().await?;

println!(
    "Raw data x={}, y={}, z={}",
    raw_data.x, raw_data.y, raw_data.z
);

let norm_data = acc.get_accel_sample().await?;

println!(
    "Normalized data x={}, y={}, z={}",
    norm_data.x, norm_data.y, norm_data.z
);

示例

在仓库内部作为工作空间成员提供在Nordic nRF52840上运行的示例。

许可

本项目采用Apache 2.0许可

版权©2023模拟器件公司。版权所有。本文件为模拟器件公司及其许可人的专有文件。

免责声明

模拟器件公司(“模拟器件”)保留在事先通知的情况下更改此产品的权利。模拟器件提供的信息在发布时被认为是准确可靠的。软件、其文档和任何相关手册按“原样”提供,不提供任何保证、声明或责任。未授予任何专利或其他权利的许可。

依赖项

~295–455KB
~10K SLoC