OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3207|回复: 7

四轴飞行器 DMP初始化失败

[复制链接]

5

主题

20

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
242
金钱
242
注册时间
2015-12-9
在线时间
85 小时
发表于 2016-1-22 10:32:51 | 显示全部楼层 |阅读模式
3金钱
我用STM32来做四轴飞行器,外什么我设置的地址为0x69,读到的是0x68,dmp自检不通过,我用的不是6050模块,直接焊接在板子上。        读取器件地址:
MPU_Write_Byte(MPU_PWR_MGMT1_REG,0X80);        //¸′λMPU6050  delay_ms(100);
        MPU_Write_Byte(MPU_PWR_MGMT1_REG,0X00);        //»½DÑMPU6050
        MPU_Set_Gyro_Fsr(3);                                        //íóÂYòÇ′«¸DÆ÷,¡à2000dps
        MPU_Set_Accel_Fsr(0);                                        //¼óËù¶è′«¸DÆ÷,¡à2g
        MPU_Set_Rate(50);                                                //éèÖÃ2éÑùÂê50Hz
        MPU_Write_Byte(MPU_INT_EN_REG,0X00);        //1رÕËùóDÖD¶Ï
        MPU_Write_Byte(MPU_USER_CTRL_REG,0X00);        //I2CÖ÷Ä£ê½1رÕ
        MPU_Write_Byte(MPU_FIFO_EN_REG,0X00);        //1رÕFIFO
        MPU_Write_Byte(MPU_INTBP_CFG_REG,0X80);        //INTòy½ÅμíμçÆ½óDD§
        res=MPU_Read_Byte(MPU_DEVICE_ID_REG);
        if(res==0x68)//  只有这儿是0X68才进得去。
        {
                MPU_Write_Byte(MPU_PWR_MGMT1_REG,0X01);        //éèÖÃCLKSEL,PLL XÖáÎa2ο¼
                MPU_Write_Byte(MPU_PWR_MGMT2_REG,0X00);        //¼óËù¶èóëíóÂYòǶ¼1¤×÷
                MPU_Set_Rate(50);                                                //éèÖÃ2éÑùÂêÎa50Hz
        }else return 1;
        return 0;


我设的地址:#define MPU_ADDR                                0X69


最佳答案

查看完整内容[请看2#楼]

把结构体里默认的0x68都改成0x69试试。比如下面这段 [mw_shl_code=c,true]const struct hw_s hw={ 0x68, //addr 1024, //max_fifo 118, //num_reg 340, //temp_sens -521, //temp_offset 256 //bank_size };[/mw_shl_code]
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

12

主题

55

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
419
金钱
419
注册时间
2015-4-14
在线时间
53 小时
发表于 2016-1-22 10:32:52 | 显示全部楼层
whydlj 发表于 2016-1-22 11:22
????自己做的板子,焊的6050模块

把结构体里默认的0x68都改成0x69试试。比如下面这段

[mw_shl_code=c,true]const struct hw_s hw={
0x68,        //addr
1024,        //max_fifo
118,        //num_reg
340,        //temp_sens
-521,        //temp_offset
256                 //bank_size
};[/mw_shl_code]
回复

使用道具 举报

12

主题

55

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
419
金钱
419
注册时间
2015-4-14
在线时间
53 小时
发表于 2016-1-22 10:37:57 | 显示全部楼层
地址不是随便设的啊,要看你用的陀螺仪数据手册啊
回复

使用道具 举报

5

主题

20

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
242
金钱
242
注册时间
2015-12-9
在线时间
85 小时
 楼主| 发表于 2016-1-22 10:45:51 | 显示全部楼层
MOMOKA 发表于 2016-1-22 10:37
地址不是随便设的啊,要看你用的陀螺仪数据手册啊

接VCC 3.3v不就是0x69吗?接GND是0X68
回复

使用道具 举报

12

主题

55

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
419
金钱
419
注册时间
2015-4-14
在线时间
53 小时
发表于 2016-1-22 11:16:57 | 显示全部楼层
whydlj 发表于 2016-1-22 10:45
接VCC 3.3v不就是0x69吗?接GND是0X68

你用的不是6050模块啊。那个是6050的吧
回复

使用道具 举报

5

主题

20

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
242
金钱
242
注册时间
2015-12-9
在线时间
85 小时
 楼主| 发表于 2016-1-22 11:22:40 | 显示全部楼层
MOMOKA 发表于 2016-1-22 11:16
你用的不是6050模块啊。那个是6050的吧

????自己做的板子,焊的6050模块
回复

使用道具 举报

5

主题

20

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
242
金钱
242
注册时间
2015-12-9
在线时间
85 小时
 楼主| 发表于 2016-1-22 14:21:15 | 显示全部楼层
用的原子的程序!改过0x69了!就是能读到地址是0x68而不是0x69!!!!
回复

使用道具 举报

5

主题

20

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
242
金钱
242
注册时间
2015-12-9
在线时间
85 小时
 楼主| 发表于 2016-1-22 16:00:04 | 显示全部楼层
MOMOKA 发表于 2016-1-22 10:32
把结构体里默认的0x68都改成0x69试试。比如下面这段

[mw_shl_code=c,true]const struct hw_s hw={

谢谢  有用了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-21 11:12

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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