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))?;
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"
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