智能车制作

标题: K60 读MPU6050 ,能读出来,但感觉数据不大好 [打印本页]

作者: lonelyman    时间: 2014-9-19 17:20
标题: K60 读MPU6050 ,能读出来,但感觉数据不大好
[attach]70286[/attach]   
这是加速度计的输出,那些很闲之间都是257,很纠结这是为什么,数据的趋势是对的,就是间隔是257,精度就不高了

作者: lonelyman    时间: 2014-9-19 17:21
初始化代码
  1. void MPU6050_Init(void)
  2. {
  3.         int i = 0;
  4.   i2c_init(MPU6050_I2C_Moudle,0,0,4);
  5.   i2c_writeaddr(MPU6050_I2C_Moudle, MPU6050_ADDRESS,MPU6050_PWR_MGMT_1, 0x00);
  6.   for(i = 0; i< 50000; i++)
  7.   {
  8.           asm("nop");
  9.   }
  10.   i2c_writeaddr(MPU6050_I2C_Moudle, MPU6050_ADDRESS,MPU6050_PWR_MGMT_2, 0x00);
  11.   i2c_writeaddr(MPU6050_I2C_Moudle, MPU6050_ADDRESS,MPU6050_SMPLRT_DIV, 0x07);//采样平率
  12.   i2c_writeaddr(MPU6050_I2C_Moudle, MPU6050_ADDRESS,MPU6050_CONFIG, 0x06);//低通滤波器带宽5Hz
  13.   i2c_writeaddr(MPU6050_I2C_Moudle, MPU6050_ADDRESS,MPU6050_GYRO_CONFIG, 0x08);//不自检   ±500 °/s
  14.   i2c_writeaddr(MPU6050_I2C_Moudle, MPU6050_ADDRESS,MPU6050_ACCEL_CONFIG, 0x08);//不自检  ±4g
  15. }
复制代码


作者: lonelyman    时间: 2014-9-19 17:40
  1. int16 MPU6050_GetDoubleData(uint8 Addr)
  2. {
  3.         int16 data=0x0000;
  4.         data=i2c_readaddr(MPU6050_I2C_Moudle,MPU6050_ADDRESS, Addr);
  5.         data=(uint16)((data<<8)&0xff00);
  6.         data+=i2c_readaddr(MPU6050_I2C_Moudle,MPU6050_ADDRESS, Addr+1);
  7.         return (int16)data;//合成数据,为有符号整形数
  8. }
复制代码



作者: zhou1994    时间: 2014-9-19 18:23
257不是数据。是那个寄存器的值
作者: lonelyman    时间: 2014-9-19 22:00
zhou1994 发表于 2014-9-19 18:23
257不是数据。是那个寄存器的值

怎么说?

作者: zhou1994    时间: 2014-9-19 22:03
lonelyman 发表于 2014-9-19 22:00
怎么说?

你看你的6050头文件是不是这样宏定义了嘛。
作者: lonelyman    时间: 2014-9-19 23:51
zhou1994 发表于 2014-9-19 22:03
你看你的6050头文件是不是这样宏定义了嘛。

各个轴的加速度计和陀螺仪的数据变化趋势都是对的,值得大小基本正确,问题在数值的间隔最小是257,六组数组都有这种情况

作者: zhou1994    时间: 2014-9-20 00:02
lonelyman 发表于 2014-9-19 23:51
各个轴的加速度计和陀螺仪的数据变化趋势都是对的,值得大小基本正确,问题在数值的间隔最小是257,六组数 ...

看看数据的度

作者: lonelyman    时间: 2014-9-20 00:08
加QQ吧?1334868163,谢谢了
作者: lonelyman    时间: 2014-9-20 00:14
zhou1994 发表于 2014-9-20 00:02
看看数据的度

你是说原本的分辨率就只有这么多?不会吧

作者: 伤痕我心    时间: 2014-9-20 18:26
我也遇到这个问题,好像是通信协议有点问题(陀螺仪,加速度计的两个寄存器),我是这样认为的,不过还没弄出来。
作者: lonelyman    时间: 2014-9-21 18:59
伤痕我心 发表于 2014-9-20 18:26
我也遇到这个问题,好像是通信协议有点问题(陀螺仪,加速度计的两个寄存器),我是这样认为的,不过还没弄 ...

不知道如何下手啊,以前没这种问题的

作者: 徐鹏    时间: 2014-12-26 19:49
MPU6050_I2C_Moudle,
MPU6050_ADDRESS代表啥啊   值是多少啊   大神程序可不可以给一份啊
作者: 大胃    时间: 2015-7-10 17:00
:lol:lol:lol
作者: 风中溯    时间: 2015-7-10 18:50
,后面我也准备用MPU6050做直立
希望到时候大神帮助,谢谢




欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2