OpenEdv-开源电子网

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

MPU-6050的初始化问题

[复制链接]

4

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
106
金钱
106
注册时间
2017-2-24
在线时间
16 小时
发表于 2017-2-28 10:37:35 | 显示全部楼层 |阅读模式
5金钱
我试着跑了一下MPU的例程,发现执行[mw_shl_code=c,true]mpu_dmp_get_data()[/mw_shl_code]函数的时候得到的返回值一直是1。
随后我debug了一下,发现MPU的Init函数都没过(返回值是1)
我随后追溯到Init函数中,发现读取IIC获取的器件ID一直是0xD1,而我是用USB转IIC读取的则是正常的。
随后我发现了这段代码:
[mw_shl_code=c,true]
//如果AD0脚(9脚)接地,IIC地址为0X68(不包含最低位).
//如果接V3.3,则IIC地址为0X69(不包含最低位).
#define MPU_ADDR                                0X68
////因为开发板接GND,所以转为读写地址后,为0XD1和0XD0(如果接GND,则为0XD3和0XD2)  
//#define MPU_READ    0XD1
//#define MPU_WRITE   0XD0
[/mw_shl_code]
请教一下这是什么情况?

最佳答案

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

我来结个帖吧!!问题已经找到了,主要是MPU-DMP的地址没设置对,地址应该是0xD0(不知道每个设备是否一样)而0x68并不是地址,而是设备的ID。只要将所有的0x68替换为0xD0就OK了(当然,校验设备ID的地方不能换)
为往圣继绝学,为知难经过事。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
106
金钱
106
注册时间
2017-2-24
在线时间
16 小时
 楼主| 发表于 2017-2-28 10:37:36 | 显示全部楼层
我来结个帖吧!!问题已经找到了,主要是MPU-DMP的地址没设置对,地址应该是0xD0(不知道每个设备是否一样)而0x68并不是地址,而是设备的ID。只要将所有的0x68替换为0xD0就OK了(当然,校验设备ID的地方不能换)
为往圣继绝学,为知难经过事。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2017-2-28 22:06:17 | 显示全部楼层
0XD1,不是器件ID哦,器件ID是0X68或者0X69才对。  
回复

使用道具 举报

4

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
106
金钱
106
注册时间
2017-2-24
在线时间
16 小时
 楼主| 发表于 2017-3-1 08:35:47 | 显示全部楼层
正点原子 发表于 2017-2-28 22:06
0XD1,不是器件ID哦,器件ID是0X68或者0X69才对。

的确不是器件ID,但是使用里程读取的时候,执行[mw_shl_code=c,true]MPU_Read_Byte(MPU_DEVICE_ID_REG)[/mw_shl_code]的时候一直是返回的一直是0xD1,MPU_Init()就一直过不了。
为往圣继绝学,为知难经过事。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-19 07:54

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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