#accelerometer #embedded-hal-driver #analog-devices #mems #spi-driver

no-std adxl355

A platform agnostic driver to interface with the ADXL355 (accelerometer) through SPI

5 releases

0.2.3 Feb 14, 2020
0.2.2 Feb 14, 2020
0.2.1 Feb 14, 2020
0.2.0 Feb 13, 2020
0.1.0 Dec 30, 2019

#940 in Embedded development

21 downloads per month

MIT/Apache

225KB
321 lines

ADXL355 embedded-hal SPI driver crate

Usage

Include library as a dependency in your Cargo.toml

[dependencies.adxl355]
version = "<version>"

Use embedded-hal implementation to get SPI and a GPIO OutputPin for the chip select, then create the accelerometer handle


use adxl355::{Adxl355, Accelerometer};

// to create sensor with default configuration:
let mut accelerometer = Adxl355::default(spi, cs)?;

// start measurements
accelerometer.start();

// to get 3d accerlation data:
let accel = accelerometer.acceleration()?;
println!("{:?}", accel);


// One can also use conf module to supply configuration:

use adxl355::{Adxl355, Config as ADXLConfig, ODR_LPF, Range, Accelerometer};

Adxl355::new(spi, cs,
                     ADXLConfig::new()
                     .odr(ODR_LPF::ODR_31_25_Hz)
                     .range(Range::_2G))?;

Running the examples

Blackpill board (STM32F103)

Example based on the stm32f103 microcontroller examples/blackpill.rs

To build an example

cargo build --example blackpill --features="stm32f103"

And run immediately. Flashing with black magic probe using bmp.sh script (only works for MacOS at the moment).

cargo run --example blackpill --features="stm32f103"

STM32G070 [DISABLED UNTIL NEXT STM32G0xx-hal UPDATE]

Example based on the stm32g070 microcontroller examples/stm32g070.rs

To build an example

cargo build --example stm32g070 --features=stm32g070 --target thumbv6m-none-eabi

The resulting ELF file can be found under target/thumbv6m-none-eabi/examples/.

To run immediately

cargo run --example stm32g070 --features=stm32g070 --target thumbv6m-none-eabi

This will make use of flash.sh that assumes the st-link utilities are available in your PATH.

Example with normalized data

cargo run --example norm_stm32g070 --features=stm32g070 --target thumbv6m-none-eabi

Dependencies

~565KB
~13K SLoC