Lis3mdl#

group drv_lis3mdl

Driver for the ST LIS3MDL magnetometer.

Author

Alexandre Abadie alexandre.abadie@inria.fr

Copyright

Inria, 2023

Enums

enum lis3mdl_xy_mode_t#

XY mode.

Values:

enumerator LIS3MDL_XY_MODE_LOW#

Low-power.

enumerator LIS3MDL_XY_MODE_MEDIUM#

Medium-performance.

enumerator LIS3MDL_XY_MODE_HIGH#

High-performance.

enumerator LIS3MDL_XY_MODE_ULTRA#

Ultra-High-performance.

enum lis3mdl_z_mode_t#

Z mode.

Values:

enumerator LIS3MDL_Z_MODE_LOW#

Low-power.

enumerator LIS3MDL_Z_MODE_MEDIUM#

Medium-performance.

enumerator LIS3MDL_Z_MODE_HIGH#

High-performance.

enumerator LIS3MDL_Z_MODE_ULTRA#

Ultra-High-performance.

enum lis3mdl_odr_t#

Output data rate.

Values:

enumerator LIS3MDL_ODR_0_625Hz#

0.625Hz

enumerator LIS3MDL_ODR_1_25Hz#

1.250Hz

enumerator LIS3MDL_ODR_2_5Hz#

5Hz

enumerator LIS3MDL_ODR_10Hz#

10Hz

enumerator LIS3MDL_ODR_20Hz#

20Hz

enumerator LIS3MDL_ODR_40Hz#

40Hz

enumerator LIS3MDL_ODR_80Hz#

80Hz

enum lis3mdl_op_t#

Operating mode.

Values:

enumerator LIS3MDL_OP_CONTINUOUS#

Continous-conversion.

enumerator LIS3MDL_OP_SINGLE#

Single-conversion.

enumerator LIS3MDL_OP_POWER_DOWN#

Power-down.

enum lis3mdl_scale_t#

Scale.

Values:

enumerator LIS3MDL_SCALE_4G#

+-4 gauss

enumerator LIS3MDL_SCALE_8G#

+-8 gauss

enumerator LIS3MDL_SCALE_12G#

+-12 gauss

enumerator LIS3MDL_SCALE_16G#

+-16 gauss

Functions

void lis3mdl_init(const lis3mdl_conf_t *conf)#

Initialize the LIS3MDL chip.

Parameters:
  • conf[in] pointer to the init configuration

bool lis3mdl_data_ready(void)#

Checks whether LIS3MDL data is ready for fetch.

void lis3mdl_read_magnetometer(lis3mdl_data_t *out)#

Reads magnetometer data on LIS3MDL over I2C.

Should be called if lis3mdl_data_ready returns true

Parameters:
  • out[out] Struct to write data to

void lis3mdl_read_temperature(int16_t *temperature)#

Reads LIS3MDL temperature sensor.

Parameters:
  • temperature[out]

struct lis3mdl_data_t#

Magnetometer data.

Public Members

int16_t x#

X axis.

int16_t y#

Y axis.

int16_t z#

Z axis.

struct lis3mdl_conf_t#

LIS3MDL init configuration.

Public Members

const gpio_t *scl#

SCL gpio.

const gpio_t *sda#

SDA gpio.

const gpio_t *mag_drdy#

Data ready gpio.

lis3mdl_xy_mode_t xy_mode#

XY mode.

lis3mdl_z_mode_t z_mode#

Z mode.

lis3mdl_odr_t odr#

Output data rate.

lis3mdl_op_t op_mode#

Operation mode.

lis3mdl_scale_t scale#

Scale.