Skip to main content

Crate lis2de12

Crate lis2de12 

Source
Expand description

High-level LIS2DE12 accelerometer driver with synchronous and asynchronous FIFO helpers.

This driver supports both I2C and SPI communication interfaces, with blocking and async modes.

§Examples

§Blocking I2C

use lis2de12::{Lis2de12, SlaveAddr};

// Create driver with default configuration
let mut sensor = Lis2de12::new_i2c(i2c, SlaveAddr::default())?;

// Read acceleration in g (floating point)
let accel = sensor.read_g()?;

§Blocking SPI

use lis2de12::Lis2de12;

// Create driver with SPI interface
let mut sensor = Lis2de12::new_spi(spi)?;

// Read acceleration in milli-g (integer)
let accel_mg = sensor.read_mg()?;

§Async I2C

use lis2de12::{Lis2de12Async, SlaveAddr};

// Create async driver with I2C
let mut sensor = Lis2de12Async::new_i2c(i2c, SlaveAddr::default()).await?;

// Read acceleration asynchronously
let accel = sensor.read_g().await?;

§Async SPI

use lis2de12::Lis2de12Async;

// Create async driver with SPI
let mut sensor = Lis2de12Async::new_spi(spi).await?;

// Read acceleration asynchronously
let accel = sensor.read_g().await?;

§Custom Configuration

use lis2de12::{Lis2de12, Lis2de12Config, SlaveAddr, Odr, Fs};

let config = Lis2de12Config {
    odr: Odr::Hz400,           // 400 Hz output data rate
    scale: Fs::G8,             // ±8g full scale
    ..Default::default()
};

let mut sensor = Lis2de12::new_i2c_with_config(i2c, SlaveAddr::default(), config)?;

§Temperature Sensor

use lis2de12::{Lis2de12, Lis2de12Config, SlaveAddr};

// Enable temperature sensor in configuration
let config = Lis2de12Config {
    temperature_enable: true,
    ..Default::default()
};

let mut sensor = Lis2de12::new_i2c_with_config(i2c, SlaveAddr::default(), config)?;

// Or enable it after initialization
sensor.set_temperature_sensor(true)?;

// Read temperature change in °C (relative to power-on reference)
// Positive = warmer, negative = cooler
let temp_delta = sensor.read_temperature()?;

// Or read raw 16-bit left-justified value
let temp_raw = sensor.read_temperature_raw()?;

§SPI Mode

The LIS2DE12 requires SPI Mode 0 or Mode 3 (CPOL=0, CPHA=0 or CPOL=1, CPHA=1). The driver uses the embedded-hal SpiDevice trait which handles chip select automatically.

Modules§

field_sets
Module containing the generated fieldsets of the registers and commands

Structs§

ActivityConfig
Activity/inactivity detection configuration (sleep-to-wake).
AxesEnable
Axis enable mask.
ClickAxesConfig
Per-axis click event enables for single/double click.
ClickConfig
Click detection configuration.
ClickStatus
Click detection status from CLICK_SRC register.
DeviceInterface
Blocking I²C interface wrapper.
FifoConfig
FIFO configuration options.
FifoStatus
Parsed FIFO status register snapshot.
Int1Routing
INT1 pin routing configuration.
Int2Routing
INT2 pin routing configuration.
InterruptConfig
Combined interrupt routing and polarity configuration.
InterruptSources
Combined interrupt sources status.
Lis2de12
Blocking LIS2DE12 driver.
Lis2de12Config
High-level configuration applied during initialisation or runtime updates.
Lis2de12Device
Root block of the Lis2de12Device driver
MotionAxesConfig
Per-axis motion event enables for high/low thresholds.
MotionConfig
Motion detection configuration for interrupt generators (IA1/IA2).
MotionStatus
Motion detection status from INT1_SRC or INT2_SRC registers.
SpiInterface
Blocking SPI interface wrapper.

Enums§

FifoMode
High-level FIFO operating modes mirroring the FM register field.
Fm
Fs
InterruptPolarity
Interrupt pin polarity.
LatchMode
Latch mode for interrupt signals.
MotionDetectionMode
Motion detection mode determining how axis events are combined.
Odr
OperatingMode
Sensor operating mode controlling resolution and power consumption.
SlaveAddr
Available LIS2DE12 I²C slave addresses (controlled by the SA0 pin).
St
TempEn

Constants§

FIFO_CAPACITY
Maximum FIFO depth in frames.
FIFO_FRAME_BYTES
Number of bytes per FIFO frame (X, Y, Z 16-bit samples).
FIFO_WATERMARK_MAX
Highest programmable FIFO watermark level.

Type Aliases§

FifoFrame
FIFO frame buffer alias.
Lis2de12I2c
Type alias for I2C-based blocking driver.
Lis2de12Spi
Type alias for SPI-based blocking driver.