搜索
bottom↓
回复: 28

MPU6050读出来的数据是0

[复制链接]

出0入0汤圆

发表于 2013-3-26 17:49:35 | 显示全部楼层 |阅读模式
MPU6050读出来的数据是0,但我读WHO AM I 的时候返回值确是0X68,证明通信连接了吧?但为什么读其他寄存器的时候返回值却是0啊。。。。。求大神指导。。。

出0入17汤圆

发表于 2013-3-26 17:58:31 | 显示全部楼层
初始化没做好吧

出0入0汤圆

 楼主| 发表于 2013-3-26 18:24:02 | 显示全部楼层
zjykwym 发表于 2013-3-26 17:58
初始化没做好吧

   Single_Write(SlaveAddress,PWR_MGMT_1, 0x00);   //
   Single_Write(SlaveAddress,SMPLRT_DIV, 0x07);    //
   Single_Write(SlaveAddress,CONFIG, 0x06);    //±2000°
   Single_Write(SlaveAddress,GYRO_CONFIG, 0x18 );  //
   Single_Write(SlaveAddress,ACCEL_CONFIG, 0x01);   //

#define        SMPLRT_DIV                0x19        //陀螺仪采样率,典型值:0x07(125Hz)
#define        CONFIG                        0x1A        //低通滤波频率,典型值:0x06(5Hz)
#define        GYRO_CONFIG                0x1B        //陀螺仪自检及测量范围,典型值:0x18(不自检,2000deg/s)
#define        ACCEL_CONFIG        0x1C        //加速计自检、测量范围及高通滤波频率,典型值:0x01(不自检,2G,5Hz)
#define        ACCEL_XOUT_H        0x3B
#define        ACCEL_XOUT_L        0x3C
#define        ACCEL_YOUT_H        0x3D
#define        ACCEL_YOUT_L        0x3E
#define        ACCEL_ZOUT_H        0x3F
#define        ACCEL_ZOUT_L        0x40
#define        TEMP_OUT_H                0x41
#define        TEMP_OUT_L                0x42
#define        GYRO_XOUT_H                0x43
#define        GYRO_XOUT_L                0x44       
#define        GYRO_YOUT_H                0x45
#define        GYRO_YOUT_L                0x46
#define        GYRO_ZOUT_H                0x47
#define        GYRO_ZOUT_L                0x48
#define        PWR_MGMT_1                0x6B        //电源管理,典型值:0x00(正常启用)
#define        WHO_AM_I                        0x75        //IIC地址寄存器(默认数值0x68,只读)
#define        SlaveAddress6050        0xD0

初始化我是参考网上的代码,您看看有问题吗??

出0入0汤圆

发表于 2013-3-26 20:04:00 | 显示全部楼层
i2c 读取代码贴上来看看

出0入17汤圆

发表于 2013-3-27 01:20:38 | 显示全部楼层
jinmailang 发表于 2013-3-26 18:24
Single_Write(SlaveAddress,PWR_MGMT_1, 0x00);   //
   Single_Write(SlaveAddress,SMPLRT_DIV, 0x07 ...

我也是用这个代码的,读取没有问题

出0入0汤圆

发表于 2013-4-1 12:11:02 | 显示全部楼层
我的也是,不知道是不是烧了

出0入0汤圆

发表于 2013-5-3 08:59:32 | 显示全部楼层
我的也是一样的情况,请问楼主解决了吗?

出0入0汤圆

发表于 2013-5-3 13:07:31 | 显示全部楼层
我也出现过这个问题。
卖IMU的给的代码在STM32F103C8T6上有问题,重写i2c就好了。

出0入0汤圆

发表于 2013-5-3 20:39:19 | 显示全部楼层
帮顶下,日后可能会用到

出0入0汤圆

发表于 2013-6-20 16:34:19 | 显示全部楼层
我读WHO AM I 的时候返回值确是0X79

出0入0汤圆

发表于 2013-8-12 16:01:41 | 显示全部楼层
楼主  我的也遇到相同的问题  在读取器件ID时返回值为68   但是其他的返回值都是零  怎么回事?C:\Users\孟涛\Desktop

出0入0汤圆

发表于 2013-8-12 16:02:55 | 显示全部楼层
楼主这是我调试时串口返回数据的截图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2013-8-17 17:42:13 | 显示全部楼层
mark....
顶一个...

出0入0汤圆

发表于 2013-8-23 20:33:00 | 显示全部楼层
我也遇到同样问题,,,想哭 不知道什么原因  我用的两个6050试的  WHO AM I都过了   有代码呈现http://www.amobbs.com/forum.php? ... p;highlight=MPU6050

出0入0汤圆

发表于 2013-9-6 07:59:41 | 显示全部楼层
我的MPU6050读取数据中总是在正确数据中伴有数据0,这是怎么回事啊?应该不是IIC发送时间延时的问题,改快改慢都不行啊....

出0入0汤圆

发表于 2013-9-9 15:09:24 | 显示全部楼层
初步判断是i2C做初始化的问题,有用示波器捕捉I2C波形看是否I2C读写正确吗?

出0入0汤圆

发表于 2013-11-14 14:41:07 | 显示全部楼层
楼主,解决问题了么? 我也遇到了这样的问题,数据采的好好的,我甩了下传感器,就出来都是0了!~

读WHO AM I 能读出来68,说明模拟IIC读取没问题呀!

出0入0汤圆

发表于 2013-11-14 19:10:39 | 显示全部楼层
初始化代码开头加入复位传感器的操作,同样是i2c写PWR_MGMT_1寄存器,有一个位是复位用的,过一会(几毫秒或几十毫秒吧)再接你的代码。

出0入0汤圆

发表于 2013-12-20 23:59:58 | 显示全部楼层
太伤感了,终于解决了,只恨没早看见这个帖啊

出0入0汤圆

发表于 2014-1-11 13:59:38 | 显示全部楼层
我记得如果你端口的设置没对的话会是0,设置为漏极,悬空。不知道是不是这个问题

出0入0汤圆

发表于 2014-1-14 10:15:07 | 显示全部楼层
我也出现这个问题了,读出ID,其他都是0

出0入0汤圆

发表于 2014-1-14 15:05:01 | 显示全部楼层
woshicky 发表于 2013-12-20 23:59
太伤感了,终于解决了,只恨没早看见这个帖啊

怎么解决的?求教

出0入0汤圆

发表于 2014-1-14 15:09:19 | 显示全部楼层
firstzys 发表于 2014-1-14 15:05
怎么解决的?求教

上电后进行一次软件复位,像这样:
        /* Reset The MPU6050 Device */       
        MPU6050_Reset(RESET);
        delay_ms(30);
        MPU6050_Reset(SET);
希望对你有用

出0入0汤圆

发表于 2014-1-14 15:56:53 | 显示全部楼层
woshicky 发表于 2014-1-14 15:09
上电后进行一次软件复位,像这样:
        /* Reset The MPU6050 Device */       
        MPU6050_Reset(RESET);

多谢多谢!

出0入0汤圆

发表于 2014-6-30 21:24:10 | 显示全部楼层
顶一下,因为这个问题纠结好长时间了,原来是在进行mpu6050的初始化之前还要进行一下复位和延时,呵呵,真的谢谢了

出0入0汤圆

发表于 2014-9-8 19:58:14 | 显示全部楼层

出现同样的问题,请教怎么复位?

出0入0汤圆

发表于 2014-9-8 21:14:06 | 显示全部楼层
v灰尘 发表于 2014-9-8 19:58
出现同样的问题,请教怎么复位?

不用了 ,已经知道怎么弄了

        IIC_Single_Write(MPU6050_Addr,PWR_MGMT_1, 0x80);       
        delay_ms(5);
        IIC_Single_Write(MPU6050_Addr,PWR_MGMT_1, 0x00);       
        IIC_Single_Write(MPU6050_Addr,SMPLRT_DIV, 0x07);       
        IIC_Single_Write(MPU6050_Addr,CONFIG, 0x06);               
        IIC_Single_Write(MPU6050_Addr,GYRO_CONFIG, 0x18);
        IIC_Single_Write(MPU6050_Addr,ACCEL_CONFIG, 0x01);

出0入0汤圆

发表于 2014-9-8 21:27:40 | 显示全部楼层
嘿嘿,顶一下顶一下

出0入0汤圆

发表于 2015-7-14 22:13:59 | 显示全部楼层
我的复位后还是一样,只有ID读得出来,其余读出来的数据是0。

void MPU6050(void)
{
                I2C_InitTypeDef I2C_Con;
                I2C_Con.I2C_Mode=I2C_Mode_I2C;
                I2C_Con.I2C_DutyCycle=I2C_DutyCycle_2;
                I2C_Con.I2C_OwnAddress1=0x00;
                I2C_Con.I2C_Ack=I2C_Ack_Enable;
                I2C_Con.I2C_AcknowledgedAddress=I2C_AcknowledgedAddress_7bit;
                I2C_Con.I2C_ClockSpeed=50000;
                I2C_ITConfig(I2C1,I2C_IT_BUF|I2C_IT_EVT ,DISABLE);
                I2C_Init(I2C1,&I2C_Con);
                I2C_Cmd(I2C1,ENABLE);
                I2C_AcknowledgeConfig(I2C1,ENABLE);

                Delay_Ms(1000);

                I2C_WriteByte(0xD0,0x6B,0x80);
               
                Delay_Ms(200);

                I2C_WriteByte(0xD0,0x6B,0x00);

                Delay_Ms(200);
         
                    I2C_WriteByte(0xD0,0x19,0x07);  //SMPLRT_DIV
                  
                I2C_WriteByte(0xD0,0x1A,0x06);  //Config

                I2C_WriteByte(0xD0,0x1B,0x18);  //GYRO_CONFIG
       
                   I2C_WriteByte(0xD0,0x1C,0x01);  //ACCEL_CONFIG
       
                USART_SendData(USART1,I2C_ReadByte(0xD0,0x41));

}
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-29 14:07

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表