#embedded-hal-driver #magnetometer #mems

无std lis3mdl-driver

一个与LIS3MDL(三轴磁力传感器)交互的平台无关驱动程序

1 个不稳定版本

0.1.0 2021年11月16日

#1216嵌入式开发


adafruit-nrf52840-sense 中使用

MIT/Apache

22KB
353

lis3mdl

一个与LIS3MDL(三轴磁力传感器)交互的平台无关驱动程序。

示例

使用B-L475E-IOT01A1板和stm32l4xx_hal crate。

// Set up the L475 peripherals
let p = stm32l4xx_hal::stm32l4::stm32l4x5::Peripherals::take().unwrap();
let mut rcc = p.RCC.constrain();
let mut gpiob = p.GPIOB.split(&mut rcc.ahb2);

// Set up clock signal as open drain with internal pull up on PB10 in alternate mode 4
let mut scl = gpiob.pb10.into_open_drain_output(&mut gpiob.moder, &mut gpiob.otyper);
scl.internal_pull_up(&mut gpiob.pupdr, true);
let scl = scl.into_af4(&mut gpiob.moder, &mut gpiob.afrh);

// Set up the data signal as open drain with internal pull up on PB11 in alternate mode 4
let mut sda = gpiob.pb11.into_open_drain_output(&mut gpiob.moder, &mut gpiob.otyper);
sda.internal_pull_up(&mut gpiob.pupdr, true);
let sda = sda.into_af4(&mut gpiob.moder, &mut gpiob.afrh);

// Set up the I2C peripheral (using I2C2)
let i2c2 = I2c::i2c2(p.I2C2,(scl,sda),100.khz(),clocks,&mut rcc.apb1r1);

// Initialize the LIS3MDL with the I2C
let mut lis3mdl_device = Lis3mdl::new(i2c2).unwrap();

// Read the X, Y, and Z axes values in milliGauss
let xyz = lis3mdl_device.get_mag_axes_mgauss().unwrap();

许可证

根据以下任一许可证授权:

任选其一。

贡献

除非您明确声明,否则根据Apache-2.0许可证定义,您有意提交的任何贡献,将按上述方式双授权,没有任何额外条款或条件。

依赖项

~175KB