打印
[四轴技术交流]

mpu9250数据读取疑问

[复制链接]
9854|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
浮木无文|  楼主 | 2015-4-3 17:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用SPI协议读mpu9250时,发现别人的程序上读取数据时只用了这个函数
 MPU9250_ReadRegs(MPU6500_ACCEL_XOUT_H, ReadBuf, 14);
但是这只读到陀螺仪寄存器,并没有读磁力计AK8963,
void IMU_Read( void )
{
  u8 ReadBuf[24] = {0};

  MPU9250_Read(ReadBuf);

  Acc.X = (s16)Byte16(ReadBuf[0],  ReadBuf[1]);   // Acc_X
  Acc.Y = (s16)Byte16(ReadBuf[2],  ReadBuf[3]);   // Acc_Y
  Acc.Z = (s16)Byte16(ReadBuf[4],  ReadBuf[5]);   // Acc_Z
  Gyr.X = (s16)Byte16(ReadBuf[8],  ReadBuf[9]);   // Gyr_X
  Gyr.Y = (s16)Byte16(ReadBuf[10], ReadBuf[11]);  // Gyr_Y
  Gyr.Z = (s16)Byte16(ReadBuf[12], ReadBuf[13]);  // Gyr_Z
  Mag.X = (s16)Byte16(ReadBuf[15], ReadBuf[14]);  // Mag_X
  Mag.Y = (s16)Byte16(ReadBuf[17], ReadBuf[16]);  // Mag_Y
  Mag.Z = (s16)Byte16(ReadBuf[19], ReadBuf[18]);  // Mag_Z
//  Temp  = (s16)Byte16(ReadBuf[6],  ReadBuf[7]);   // Temp

  Acc.TrueX = Acc.X* MPU9250A_4g;      // g/LSB
  Acc.TrueY = Acc.Y* MPU9250A_4g;      // g/LSB
  Acc.TrueZ = Acc.Z* MPU9250A_4g;      // g/LSB
  Gyr.TrueX = Gyr.X* MPU9250G_2000dps; // dps/LSB
  Gyr.TrueY = Gyr.Y* MPU9250G_2000dps; // dps/LSB
  Gyr.TrueZ = Gyr.Z* MPU9250G_2000dps; // dps/LSB
  Mag.TrueX = Mag.X* MPU9250M_4800uT;  // uT/LSB
  Mag.TrueY = Mag.Y* MPU9250M_4800uT;  // uT/LSB
  Mag.TrueZ = Mag.Z* MPU9250M_4800uT;  // uT/LSB
}
而在计算时计算了磁力计,而且mpu6500与AK8963寄存器地址是重叠的,怎么区分;

相关帖子

沙发
浮木无文|  楼主 | 2015-4-4 16:24 | 只看该作者
用9250和9150哪个更好呢

使用特权

评论回复
板凳
陆丽华| | 2015-4-24 15:47 | 只看该作者
楼主你的问题解决没?我现在也是这个问题,SPI可以读取加速度和陀螺仪,但磁强计读取不到。如何区分重叠的地址呢?难道磁强计只能用I2C通信吗?楼主有方法的话 请告之,急!非常感谢。

使用特权

评论回复
地板
木乃晗| | 2015-10-2 09:52 | 只看该作者
我可以读出它的数据,挺稳定的,但不知道怎样使用电子罗盘的数据,大神们是怎样处理的

使用特权

评论回复
评论
探索无限 2019-4-19 09:38 回复TA
你好,我也遇到了你这样的问题,大神你后来是怎么处理的? 
5
1030981660| | 2015-12-3 22:51 | 只看该作者
陆丽华 发表于 2015-4-24 15:47
楼主你的问题解决没?我现在也是这个问题,SPI可以读取加速度和陀螺仪,但磁强计读取不到。如何区分重叠的 ...

您好!请问您还有SPI读取加速度和陀螺仪的代码吗?卡了好几天都没成功,可以给我参考下吗?谢谢!1030981660@qq.com

使用特权

评论回复
6
klchongzi| | 2015-12-19 14:41 | 只看该作者
也调了好几天,终于搞定了,用内部I2C MASTER 转发,slv4单字节读写AK88963寄存器,用SLV0接收数据到EXT_SENS_DATA_,然后可以随时和加速度陀螺仪数据一起读出

使用特权

评论回复
7
caishichang| | 2015-12-28 21:56 | 只看该作者
klchongzi 发表于 2015-12-19 14:41
也调了好几天,终于搞定了,用内部I2C MASTER 转发,slv4单字节读写AK88963寄存器,用SLV0接收数据到EXT_SE ...

你好,我想问下,那个电子罗盘的地址是0x0C吗?

使用特权

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

本版积分规则

4

主题

6

帖子

0

粉丝