3 releases

0.1.2 Apr 9, 2023
0.1.1 Sep 17, 2022
0.1.0 Feb 16, 2021

#850 in Embedded development

MIT license

20KB
390 lines

Build Status Docs.rs Crates.io

Table of Contents

About the Project 📃

This is a simple driver for ST's iis2mdc sensor.

Documentation for that sensor can be found at ST's website

Usage 👀

Check out the examples folder for simple implementation

To declare a sensor is pretty simple:

let sensor = Iis2mdc::new(&mut i2c).unwrap()

All registers have the bits addressed by their function, for example here se set the BOOT register in the CTRL_3C register to 1

sensor.cfg_reg_a.set_reboot(i2c, true).unwrap();

For bits that operate together, they have their custom type abstracted. For example, to set the accelerometer data rate you have to operate 4 bits. But here you just have to specify your desired data rate and the driver takes care of it.

// Sets the following bits
// ODR_0 to 1
// ODR_1 to 0

sensor
    .cfg_reg_a
    .set_data_rate(i2c, iis2mdc::cfg_reg_a::Odr::Hz50)
    .unwrap();

Help wanted 🤝

All contributions are welcome!

If you are using or plan to use this create don't hesitate to open an issue or a PR.

Multiple registers are yet to be referenced!

License

See LICENSE for more details.

Dependencies

~71KB