OpenEdv-开源电子网

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

F4系列读取MPU9250

[复制链接]

6

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
154
金钱
154
注册时间
2017-10-11
在线时间
32 小时
发表于 2018-6-20 17:35:00 | 显示全部楼层 |阅读模式
20金钱
我用探索者,ST-F411,ST-F401,都做了测试。为什么当用它们的PB8,PB9分别接MPU9250的SCL,SDA时,都不能读写数据呢???(改用PB6,与PB7就可以了)。而我有看过你们的小四轴里MPU9250也接的PB8,PB9,这就代表PB8与PB9可以用呀。请求帮助!!!!!!  (有代码有真相,看附件)

MPU9250.zip

1.66 MB, 下载次数: 210

最佳答案

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

这个你看下MPL的地址是否也设置对了吧?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2018-6-20 17:35:01 | 显示全部楼层
8往事随风001 发表于 2018-6-25 10:40
但是还有一个问题未能解决!AD0该为高电平(代码中地址该为0X69)后,一下这段代码不能执行

if(mpu_mpl_ ...

这个你看下MPL的地址是否也设置对了吧?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2018-6-21 01:28:51 | 显示全部楼层
说明你代码没移植好。另外,你看看硬件上是不是有冲突?
回复

使用道具 举报

6

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
154
金钱
154
注册时间
2017-10-11
在线时间
32 小时
 楼主| 发表于 2018-6-21 11:05:37 | 显示全部楼层
正点原子 发表于 2018-6-21 01:28
说明你代码没移植好。另外,你看看硬件上是不是有冲突?

代码没有修改。只改了设置,芯片型号,C/C++中的Define,还有下载中的芯片大小。硬件连接上并没有连别的东西。
回复

使用道具 举报

6

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
154
金钱
154
注册时间
2017-10-11
在线时间
32 小时
 楼主| 发表于 2018-6-21 11:08:58 | 显示全部楼层
8往事随风001 发表于 2018-6-21 11:05
代码没有修改。只改了设置,芯片型号,C/C++中的Define,还有下载中的芯片大小。硬件连接上并没有连别的 ...

代码唯一的修改就是改了引脚号,对照了寄存器引脚修改也没有错啊!很是疑惑.......
回复

使用道具 举报

3

主题

49

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
352
金钱
352
注册时间
2016-11-13
在线时间
40 小时
发表于 2018-6-21 18:15:06 | 显示全部楼层
哈哈,这个玄学问题,应该出在模拟IIC上,我也碰到过,用PB11,PB12都不行,就PB6,PB7可以。最后没办法我把电路板上的铜线切断,用飞线连上B6、7
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2018-6-22 01:29:14 | 显示全部楼层
8往事随风001 发表于 2018-6-21 11:05
代码没有修改。只改了设置,芯片型号,C/C++中的Define,还有下载中的芯片大小。硬件连接上并没有连别的 ...

搞个示波器,看看两个引脚是否有波形
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

6

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
154
金钱
154
注册时间
2017-10-11
在线时间
32 小时
 楼主| 发表于 2018-6-23 15:36:56 | 显示全部楼层
正点原子 发表于 2018-6-22 01:29
搞个示波器,看看两个引脚是否有波形

到处借了个示波器测试了,b波形看起来还挺稳定的。本打算改用硬件IIC来试试,但不太会配置呀,原子哥你有配置好的能给我参考参考不??;现在退而求次改用F1的芯片,在用F1测试时又发现了新的问题,9250的AD0为低电平时读取数据是正常的,但是我将AD0该为高电平(代码中地址该为0X69)后,初始化DMP就出现问题了,无法初始化。真是一波未平一波又起.........
回复

使用道具 举报

6

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
154
金钱
154
注册时间
2017-10-11
在线时间
32 小时
 楼主| 发表于 2018-6-23 15:41:27 | 显示全部楼层
本打算用F4采用DMP来读取,现在的结果却是F1采用姿态融合算法读取。谁能为我指点迷津啊

mini-F1-姿态融合算法-OK.zip

4.65 MB, 下载次数: 1344

回复

使用道具 举报

6

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
154
金钱
154
注册时间
2017-10-11
在线时间
32 小时
 楼主| 发表于 2018-6-25 10:36:50 | 显示全部楼层
解决PB8,PB9,IIC读取的问题了!引脚要设为开漏输出!

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_9;//端口配置
GPIO_InitStructure.GPIO_OType = GPIO_OType_OD;//开漏模式
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//上拉
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;//输出模式
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//IO口速度为50MHz
GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化
回复

使用道具 举报

6

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
154
金钱
154
注册时间
2017-10-11
在线时间
32 小时
 楼主| 发表于 2018-6-25 10:40:52 | 显示全部楼层
但是还有一个问题未能解决!AD0该为高电平(代码中地址该为0X69)后,一下这段代码不能执行

if(mpu_mpl_get_data(&pitch,&roll,&yaw)==0)
                {       
                        LED0=!LED0;
                        temp=MPU_Get_Temperature();        //得到温度值
                        MPU_Get_Accelerometer(&aacx,&aacy,&aacz);        //得到加速度传感器数据
                }


程序死在了内部的   while(dmp_read_fifo(gyro, accel_short, quat, &sensor_timestamp, &sensors,&more)){};

回复

使用道具 举报

6

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
154
金钱
154
注册时间
2017-10-11
在线时间
32 小时
 楼主| 发表于 2018-6-25 10:42:42 | 显示全部楼层
正点原子 发表于 2018-6-22 01:29
搞个示波器,看看两个引脚是否有波形

原子哥!F4系列PB8,PB9IIC读取问题我解决了!但还有一个新的问题还望你帮我看看!
回复

使用道具 举报

6

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
154
金钱
154
注册时间
2017-10-11
在线时间
32 小时
 楼主| 发表于 2018-6-27 08:40:43 | 显示全部楼层
正点原子 发表于 2018-6-26 01:22
这个你看下MPL的地址是否也设置对了吧?

MPL的地址  我没有修改!  在哪里修改呢原子哥
回复

使用道具 举报

6

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
154
金钱
154
注册时间
2017-10-11
在线时间
32 小时
 楼主| 发表于 2018-6-27 09:00:25 | 显示全部楼层
正点原子 发表于 2018-6-26 01:22
这个你看下MPL的地址是否也设置对了吧?

谢谢原子哥!一句话就帮我解决了大问题!谢谢啦!
回复

使用道具 举报

6

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
154
金钱
154
注册时间
2017-10-11
在线时间
32 小时
 楼主| 发表于 2018-6-27 09:04:47 | 显示全部楼层
MPU9250在采用第二地址将AD0接高电平时,需要将mpu9250.h中的器件地址改为0x69.
将inv_mpu.c中的mpl地址(
第599行
const struct hw_s hw = {
    .addr           = 0x69,
    .max_fifo       = 1024,
    .num_reg        = 128,
    .temp_sens      = 321,
    .temp_offset    = 0,
    .bank_size      = 256
)也该为0x69
回复

使用道具 举报

6

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
154
金钱
154
注册时间
2017-10-11
在线时间
32 小时
 楼主| 发表于 2018-6-27 09:08:06 | 显示全部楼层
无代码无真相! 探索者F4,当AD0为高电平时,用MPL读取数据

探索者-F4-OK.zip

880.43 KB, 下载次数: 155

回复

使用道具 举报

0

主题

7

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2018-7-16
在线时间
2 小时
发表于 2018-7-17 08:39:59 | 显示全部楼层
8往事随风001 发表于 2018-6-27 09:08
无代码无真相! 探索者F4,当AD0为高电平时,用MPL读取数据

]X_LU7XB}DW6ZO<)E6MRD.png 为何你把自检屏蔽,自检不能通过啊?????这是为什么。。。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-29 19:37

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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