搜索
bottom↓
回复: 0

[问题已解决]请教MPU6050读寄存器正常但是角速度和加速度...

[复制链接]

出0入0汤圆

发表于 2016-3-14 22:48:49 | 显示全部楼层 |阅读模式
本帖最后由 zouyf12 于 2016-3-15 23:24 编辑

        今天焊的一块板子,MPU6050读寄存器正常,但是读角速度和加速度都是0, 不知道是不是芯片坏了。  程序什么的没有问题,因为同样的板子都OK。



[问题已解决]
      以上是昨天问的问题, 老天开眼,自己正好碰中地方解决了。
写出了方便以后倒霉的同学也遇到同样的问题。 补充说明板子是参考MWC飞控做的。
      
      是这样的,板子的程序用的是MWC的, 而MWC在初始化MPU6050前会先软复位一下,  而小弟实验表明,MPU6050上电后的一段时间内,要么就不要去软件复位, 要软件复位,复位后也必须再等一段时间后,才能开始正常配置寄存器, 要不然MPU6050就会全0罢工。 如下MWC MPU6050初始化程序, 无论是删掉标红第一句还是加长第二句的延迟,均可解决问题。

void Gyro_init() {
  TWBR = ((F_CPU / 400000L) - 16) / 2; // change the I2C clock rate to 400kHz
  i2c_writeReg(MPU6050_ADDRESS, 0x6B, 0x80);             //PWR_MGMT_1    -- DEVICE_RESET 1
  delay(5);
  i2c_writeReg(MPU6050_ADDRESS, 0x6B, 0x03);    //0x03         //PWR_MGMT_1    -- SLEEP 0; CYCLE 0; TEMP_DIS 0; CLKSEL 3 (PLL with Z Gyro reference)
  i2c_writeReg(MPU6050_ADDRESS, 0x1A, MPU6050_DLPF_CFG); //CONFIG        -- EXT_SYNC_SET 0 (disable input pin for data sync) ; default DLPF_CFG = 0 => ACC bandwidth = 260Hz  GYRO bandwidth = 256Hz)
  i2c_writeReg(MPU6050_ADDRESS, 0x1B, 0x18);             //GYRO_CONFIG   -- FS_SEL = 3: Full scale set to 2000 deg/sec
  // enable I2C bypass for AUX I2C
  #if defined(MAG)
    i2c_writeReg(MPU6050_ADDRESS, 0x37, 0x02);           //INT_PIN_CFG   -- INT_LEVEL=0 ; INT_OPEN=0 ; LATCH_INT_EN=0 ; INT_RD_CLEAR=0 ; FSYNC_INT_LEVEL=0 ; FSYNC_INT_EN=0 ; I2C_BYPASS_EN=1 ; CLKOUT_EN=0
  #endif
}



不过,另一个问题来了,MWC这么多人用,为什么偏偏我这里会出现这样的问题, 目前实在想不通。。。。。






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-18 12:55

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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