MPU6050加速度需要复位多次之后才能读取显示

2019-07-21 04:57发布

u8 MPU_Init(void)
{
  u8 res;
  IIC_PinInit();//初始化IIC总线
  MPU_Write_Byte(MPU_PWR_MGMT1_REG,0X80);        //复位MPU6050
  delay_ms(100);  
  MPU_Write_Byte(MPU_PWR_MGMT1_REG,0X00);        //唤醒MPU6050
  MPU_Set_Accel_Fsr(0);                                        //加速度传感器,±2g
  MPU_Set_Rate(50);                                                //设置采样率50Hz
  MPU_Write_Byte(MPU_INT_EN_REG,0X00);        //关闭所有中断
  MPU_Write_Byte(MPU_USER_CTRL_REG,0X00);        //I2C主模式关闭
  MPU_Write_Byte(MPU_FIFO_EN_REG,0X00);        //关闭FIFO
// MPU_Write_Byte(MPU_INTBP_CFG_REG,0X80);        //INT引脚低电平有效
  res=MPU_Read_Byte(MPU_DEVICE_ID_REG);
  if(res==MPU_ADDR)//器件ID正确
  {
    MPU_Write_Byte(MPU_PWR_MGMT1_REG,0X01);        //设置CLKSEL,PLL X轴为参考
    MPU_Write_Byte(MPU_PWR_MGMT2_REG,0x07);        //只有加速度都工作
    MPU_Set_Rate(50);                                                            //设置采样率为50Hz

  }else return 1;
  return 0;
}
初始化是这样的,延迟加了也没有用。萌新求助!

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
正点原子
1楼-- · 2019-07-21 09:15
是我们开发板么?
c16
2楼-- · 2019-07-21 09:54
正点原子 发表于 2018-12-31 01:04
是我们开发板么?

不是,但是晶振之类的都一样,其他实例代码也都可以用,就是不能解决这个问题
正点原子
3楼-- · 2019-07-21 14:13
c16 发表于 2019-2-27 14:36
不是,但是晶振之类的都一样,其他实例代码也都可以用,就是不能解决这个问题

在DMP初始化之前,先调用一次MPU_Init

一周热门 更多>