smurfjack 发表于 2013-6-21 09:58:17

大侠救命!!!MPU6050与ATmega16通信读数不刷新

如图,xyz pyr读数一直固定在这个读数,每次断电再弄也是这样,我怀疑是不是寄存器中一直是这个读数,6050根本没有刷新他的寄存器,不知道为什么。忙活半天做了个命令行上位机,结果读数不变,真是不容易,请大侠帮忙看看。
我的初始化这样
IO_init();
usart_init();
i2c_init();
_delay_ms(1000);//Wait for power up and monitor connection
i2c_write(MPU6050_RA_PWR_MGMT_1 , 0x00);//取消休眠
   i2c_write(MPU6050_RA_SMPLRT_DIV , 0x07);//陀螺仪采样率,典型值:0x07(125Hz)
   i2c_write(MPU6050_RA_CONFIG , 0x06);//低通滤波频率,典型值:0x06(5Hz)
   i2c_write(MPU6050_RA_ACCEL_CONFIG, 0x01);//加速计自检、测量范围及高通滤波频
   i2c_write(MPU6050_RA_GYRO_CONFIG , 0x18);//陀螺仪自检及测量范围,典型值:0x18(不自检,2000deg/s)

BLACKBLUE007 发表于 2013-6-21 10:07:56

你的I2C_Add对不对哦.........

paul_guo 发表于 2013-6-21 10:14:07

1,确定传感器是否工作 正常;可以测测电流之类的;
2,确定I2C是不是波形正常;传感器有没有反馈波形,如果OK,读读传感器的常量寄存位。

smurfjack 发表于 2013-6-21 10:55:33

paul_guo 发表于 2013-6-21 10:14 static/image/common/back.gif
1,确定传感器是否工作 正常;可以测测电流之类的;
2,确定I2C是不是波形正常;传感器有没有反馈波形,如果 ...

反馈波形测哪里啊,sda scl?电流的话我不知道正常是多少啊,既然能有读数,说明结果寄存器是有东西的

paul_guo 发表于 2013-7-1 20:28:14

是的,测通信引脚的波形。。
电流可以查手册正常电流是多少的

smurfjack 发表于 2013-8-2 21:35:05

问题搞定,害的我又买了一块6050
排除过程:
既然读数都读到了,而且每次都是固定的值,那么有两种情况
1.mpu6050有问题,只读到寄存器里面的值,而不会更新(不至于每次都一样啊,用串口工具读出来的数据都是固定的说明可能是I2C通信的问题)
2.I2C通信的问题,可能开始的时候读了一次默认,后续的就读不到了,由于我的上位机也写的有问题,综合起来导致数据不刷新

处理方案:
修改上位机,将显示更新函数附近的语句做了一定调整
修改单片机程序,将I2C速率等初始化语句进行了修改

搞定

cdd329958 发表于 2013-8-9 17:04:24

楼主啊,可否把你的源程序,上位机共享一下呢{:loveliness:}

smurfjack 发表于 2013-10-15 21:18:51

救命啊,现在已经搞定读取原始数据了,但是就是搞不出DMP,请有经验的大侠救救

pillar2060 发表于 2017-2-16 10:40:00

可以分享一下MPU6050和ATmega16通信的源码吗?谢过前辈。
页: [1]
查看完整版本: 大侠救命!!!MPU6050与ATmega16通信读数不刷新