智能车制作

标题: 关于stm32硬件IIC调试MPU6050的问题 [打印本页]

作者: motianlun1111    时间: 2015-8-18 14:38
标题: 关于stm32硬件IIC调试MPU6050的问题
      如标题,各位大大,有没有人用过硬件IIC调试mpu6050的,我这里说说我遇到的问题,拿软件模拟的iic调试这个mpu6050没有问题,当然软件的不是我写的,好像软件模拟iic io口用的推挽输出?我记得我好像改成开漏了好像也行,不知道是不是这样,有经验的说说?
     说说我的问题,我是想用硬件来做这个事,硬件的程序使用在EEPROM上一点问题没有,反复的写然后读,然后写,都验证了没有任何问题,反复的写也没有问题,反复的读也没有问题,但是接到MPU6050上,去读的话,有时候能读出来,然后复位再就读不出来了,后来发现了其原因,是对mpu进行一次读操作之后,mpu给SDA线拉低,而且不会释放,因为我拿示波器看,如果把连接mpu6050的SDA线拔了,这时候SDA总线就是高了,(我IIC总线连着eeprom还有mpu6050)如果我用镊子把mpu6050上的SDA短接一下VCC就好使了,也就是就让MPU拉低的SDA释放为高了,这个时候我就又能进行一次读操作,如果MPU6050给SDA拉着低不放的话,包括我读eeprom也是进行不了,我想是不是SDA拉为低,导致产生不了起始信号?这是mpu6050的通病还是有什么地方要设置?而我用软件模拟的方式就读写mpu6050就正常,软件模拟,不是我写的,我不清楚是io推挽的还是开漏的,一般软件模拟的用的是推挽还是开漏?

作者: motianlun1111    时间: 2015-8-18 14:55
刚刚看了,软件模拟的那个iic,引脚配置的也是开漏输出,GPIOE->CRH  配置的是55,也就是PE8,9都是开漏输出,本来怀疑是软件模拟iic是推挽输出,在操作mpu的时候,给mpu的sda强拉起来的,现在看来不是这么回事,有没有遇到我这种情况的啊?求大神
作者: swml11    时间: 2015-8-18 16:33
一样,并不知道怎么解决
作者: 有点不够帅    时间: 2015-8-20 23:47
还是用软件模拟一下吧
作者: motianlun1111    时间: 2015-8-25 10:04
有点不够帅 发表于 2015-8-20 23:47
还是用软件模拟一下吧

已结解决了,还是程序里面的小失误,顺便问一下,你们用软件模拟iic,这个通讯速度怎么控制的呢?通过不断的修改延时的时长来控制通讯速度?还是?软件模拟的能做到400khz吗?还是说那是要很用心的调那些延时参数最后计算一下是不是400khz这样?

作者: motianlun1111    时间: 2015-12-21 11:53
la9998372 发表于 2015-9-21 23:23
楼主,分享一下你的程序呗?后来是什么问题能方便告诉一下嘛?

好久了,我也忘了,反正证实了是硬件iic写的有问题,但是很奇怪的是,这个有问题的iic程序操作eeprom居然可以,mpu6050要求的更多吧,反正注意写个正确的硬件iic程序就好了




欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2