温江刚哥哥 发表于 2015-5-11 13:37:12

新人成功mpu6050成功,源码发放,过程分享

以前一直在学习51现在转到stm32感觉区别还是挺大的.

下面梳理一下自己遇到过的关于读6050数据的问题:
1. 卖家给的51程序成功读取到6050数据,stm32未成功,网上下载了很多程序也未成功读取(可能自己不会修改某些参数)。
2. stm32模拟IIC管脚问题。
3. 6050初始化问题。
4. IIC读取到数据不正确遇到过问题。1).数据全部为ff                2).数据全部为-1                3).数据有规律的成周期性的循环                4).读取60500x75地址数值为 ff或0或不确定的值(反正不是0x68)

自己的处理过程:
1.先用51成功的读到了6050数据(证明6050是好的),看别人的程序的大体框架(细看有些地方也看不懂......)。
2.首先是配置问题————输出用推挽输出,输入用上拉输入(总线外部未接上拉电阻),端口时钟,IO口初始化,SDA端口不停地切换输入输出模式。
   其次是模拟IIC协议—————基础(后来由于读不到正确的数据,把以前的资料拿出来看了很多遍......)
3.6050初始化,有很多寄存器,也没有细细研究。但是我在一点里提到,虽然网上很多stm32读6050程序未能成功运行,但是他们的初始化程序大致相同。所以我就直接粘过来用了......(以后再细细研究)
4.IIC读数据不正确:
      过程很坎坷......今天礼拜日没课,所以昨晚干到3点多也未能读到正确数据........
      总结一下论坛里遇到过此问题后的处理方法吧:
                                                1).IIC模拟不正确                //包括电平持续时间,应答的发出,数据读取逻辑顺序               
                                                2).模拟正确后没有初始化      
                                                3).IIC初始化和6050初始化的时间间隔,需要延迟一段时间               
                                                4).软件复位6050。论坛里有人提到过是在PWR_MGMT_1(地址0x6b)寄存器中的bit7 DEVICE_RESET位 置1复位      。

      自己处理方法:
                1).保证自己的IIC是对的。先用24C02成功读写数据
                2).保证6050的器件地址0xd0无误后,用IIC读取6050的WHO_IM_I寄存器(地址0x75),默认值为0x68。成功读到0x68=104后就成功了一大半。
                3).(得寸进尺)读到0x68后,初始化6050再尝试去读取它x轴上的加速度 (MPU6050_RA_ACCEL_XOUT_H   0x3B)<<8|(MPU6050_RA_ACCEL_XOUT_L   0x3C)      
                                                                                                                                                                                                //高八位与低八位合成十六位数据(可省略此步)
                4).上面成功后就可以批量的去读取                加速度:X, Y, Z      陀螺仪:X ,Y ,Z      温度:temp                然后再用串口发送就好了
再贴一张自己调试的时候用到的24c02的图片

最后奉上自己读写成功的程序,还没整理比较乱......
IIC用的刘洋老师的      板子用的是原子的MINI STM32      芯片STM32F103                IIC_SDA.PB11                IIC_SCL.PB10                修改IIC端口时只需在IIC.h文件中修改相应的宏定义即可
6050寄存器中文手册论坛里有人上传大家可以去搜索一下。

取个牛逼的名字 发表于 2015-5-18 11:31:12

楼主是超人

取个牛逼的名字 发表于 2015-5-18 11:18:13

顶顶多好

取个牛逼的名字 发表于 2015-5-18 11:16:57

说的非常好

灰机哥哥 发表于 2015-5-18 10:59:58

很好哦

亮波诺 发表于 2015-5-18 10:58:26

不错不错

2035 发表于 2015-5-18 11:47:11

真心顶

3110994 发表于 2015-5-18 12:20:44

说的非常好

2035 发表于 2015-5-18 11:49:19

顶礼

温江刚哥哥 发表于 2015-5-18 12:22:07

很好很强大学习了
页: [1] 2 3
查看完整版本: 新人成功mpu6050成功,源码发放,过程分享