打印
[应用相关]

基于STM32的MPU9250模块调试

[复制链接]
1315|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
米尔豪斯|  楼主 | 2016-5-25 21:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
分享一个自己用STM32做的MPU9250调试经验,使用的单片机型号为:STM32F103ZET6

传感器简介
MPU9250包括三轴加速度计、三轴陀螺仪和三轴磁强计,以及动态运动处理器(DMP)。

编译环境
采用的编译工具为MDK

通信方式
MPU9250支持IIC和SPI两种通信方式,本文采用的是IIC总线通信。
传感器初始化配置如下
      {0x80, MPU9250_RA_PWR_MGMT_1}    // Reset Device
      {0x01, MPU9250_RA_PWR_MGMT_1}     // Clock Source
      {0x00, MPU9250_RA_PWR_MGMT_2}     // Enable Acc & Gyro
      {0x07, MPU9250_RA_CONFIG}         //
      {0x00, MPU9250_RA_GYRO_CONFIG}    // +-250dps
      {0x00, MPU9250_RA_ACCEL_CONFIG}   // +-2G
      {0x00, MPU9250_RA_ACCEL_CONFIG_2} // Set Acc Data Rates
      {0x30, MPU9250_RA_INT_PIN_CFG}    //
      {0x40, MPU9250_RA_I2C_MST_CTRL}   // I2C Speed 348 kHz
      {0x20, MPU9250_RA_USER_CTRL}      // Enable AUX
      {0x8C, MPU9250_RA_I2C_SLV0_ADDR}  
      {0x00, MPU9250_RA_I2C_SLV0_REG}   
      {0x81, MPU9250_RA_I2C_SLV0_CTRL}
      {0x01, MPU9250_RA_I2C_MST_DELAY_CTRL}
测试连通性代码
读取三轴加速度计和三轴陀螺仪MPU6500设备ID
MPU9250_readBytes(devAddr, MPU9250_RA_WHO_AM_I, 1, &DeviceID);
MPU6500设备ID为0x71
读取三轴磁强计AK8963设备ID
MPU9250_WriteReg(MPU9250_RA_I2C_SLV0_ADDR, 0x18); // Set AK8963 IIC address
MPU9250_WriteReg(MPU9250_RA_I2C_SLV0_REG, AK8963_WIA);     // Set Write Reg
MPU9250_WriteReg(MPU9250_RA_I2C_SLV0_CTRL, 0x81);          // Start Read
MPU9250_ReadReg(MPU9250_RA_EXT_SENS_DATA_00, &DeviceID);   // Read Data
读取AK8963设备ID为0x00
可能的原因:
(1)缺少其它涉及到AK8963部分的代码配置
(2)传感器模块有问题(可能性较低)
沙发
gejigeji521| | 2016-5-25 23:57 | 只看该作者
没用过这个传感器,坐等高手老手

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

150

主题

731

帖子

1

粉丝