#stm32 #cortex-m #arm #stm32-hal #hal #no-std-driver #temperature-sensor

mpu9250

MPU9250 & 板载 AK8963 (加速度计 + 陀螺仪 + 磁力计 IMU) 的 no_std 驱动程序

38 个版本

使用旧的 Rust 2015

0.25.0 2023 年 7 月 29 日
0.24.1 2022 年 8 月 8 日
0.24.0 2020 年 10 月 14 日
0.22.2 2020 年 6 月 14 日
0.7.3 2018 年 10 月 7 日

#394硬件支持


用于 pixracer_bsp

MIT/Apache 协议

140KB
2.5K SLoC

mpu9250

MPU9250 (以及一些 MPU* 设备) 的 no_std 驱动程序 & 板载 AK8963 (加速度计 + 陀螺仪 + 磁力计 IMU)

Build Status

功能

  • 读取加速度计、陀螺仪、温度传感器和磁力计:原始值和缩放及转换值。
  • 设置 DLPF、读取比例、采样率除数。
  • 读取 MPU9250 和 AK8963 的 WHO_AM_I 寄存器。
  • 获取分辨率和出厂灵敏度。

支持的芯片

  • MPU9250 -- ImuMarg
  • MPU9255 -- ImuMarg
  • MPU6500 -- 仅 Imu

注意

MPU9255 在 ASIC 中有一些额外的功能,允许一些额外的手势控制,但除此之外,该芯片与 MPU9250 完全相同。

基本用法

在您的 Cargo.toml 中将 作为依赖项包含

[dependencies.mpu9250]
version = "<version>"

使用嵌入式-hal 实现获取 SPI、NCS 和延迟,然后创建 mpu 处理器

extern crate mpu9250; // or just use mpu9250; if 2018 edition is used.

// to create sensor with mag support and default configuration:
let mut _imu = Mpu9250::marg_default(spi, ncs, &mut delay)?;
// to create sensor without mag support and default configuration:
let mut marg = Mpu9250::imu_default(spi, ncs, &mut delay)?;
// to get all supported measurements:
let all = marg.all()?;
println!("{:?}", all);

更多示例

示例的数量可以在 proving-ground 仓库中找到。示例包括:读取温度、校准磁力计、读取所有传感器。

实验性 I2C 支持

通过 i2c 特性标志启用实验性 I2C 支持。启用时,SPI 支持将被禁用,mpu9250 驱动程序的类型将从 Mpu9250<SpiDevice<SPI, NCS>, MODE> 更改为 Mpu9250<I2cDevice<I2C>, Imu>

MPU9250目前支持仅IMU的配置。请参阅BeagleBone Blue示例以进行演示。对AK8963的支持是一个WPI。

文档

API文档可在docs.rs上找到。

许可

根据您的选择,许可协议为以下之一

客户评价

最初是从japaric的mpu9250仓库派生出来的。

依赖项

~145–275KB