OpenEdv-开源电子网

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

将探索板的mpu6050例程,移植到STM32F407ZG最小系统板。无法读取传感器设备地址

[复制链接]

1

主题

1

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2021-7-13
在线时间
5 小时
发表于 2021-7-22 20:44:17 | 显示全部楼层 |阅读模式
昨天还是前天,在论坛发了这个问题的求助,结果不知道为啥问题发出去只有标题,里面的详细内容没了,光剩个附件了。
我可能被大家看成伸手党了吧qaq
真不是啊,我详细内容说了好多前期实验的qaq
总之现在问题解决了,说一下我的思路,希望能帮到别人。

首先,我做了IIC访问EEPROM的实验,现象正确,这说明正点原子的IIC库代码没问题。

然后,我借来一块STM32F1精英板,这块板子有MPU6050的正点官方例程。我跑了下例程,现象正确,说明我的MPU6050和杜邦线都没坏。

然后,我开始将探索者MPU6050的代码移植到我的f4系统板上。

////////////////////////////////////////////////////////////////////
注意:下面的内容中少了很多图,因为加上图之后,系统说我文章太长。
全文我放附件里了。
////////////////////////////////////////////////////////////////////


一开始,读到的设备地址为0x00:
【这里有图】


经过检查发现,是因为GPIO初始化的时候,开错了时钟:

【这里有图】


修改过后,读到的设备地址是0xff:这可能是因为接线接错了,导致通信失败,或者是代码哪里不对。

找到隔壁大佬问了一下,他指出了我的一处错误:IIC改管脚有一处位带操作我没改(我是个没学过位带操作,成天瞎jb改代码的人)
【这里有图】
红框处应改为跟你的SDA管脚一致。我这里是9显然不对,应该改成5.

此时读到的是0xD1,也就是正确答案0x68左移了一位又加一

然后,又经过长时间的网上查找,发现有人建议修改IIC管脚初始化模式为开漏(例程为推挽),或者把上拉模式改成NOPULL模式。
我尝试了一下把推挽改为开漏,读出了地址。程序可以正常运行了。
【这里有图】



新的问题:
我和我同学都用正点最小板f4,都从探索者例程移植,用的同一款mpu6050.
他就只改管脚就行了,我却还要改推挽开漏,这是为什么?

昨天还是前天.zip

970.81 KB, 下载次数: 52

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-27 08:33

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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