OpenEdv-开源电子网

标题: mpu9150器件ID为0xFF,AD0接地了,连接线测量也均导通,只有5、6cm长,初始化mpu的代码如下: [打印本页]

作者: qinxiaoxiao    时间: 2018-11-3 22:49
标题: mpu9150器件ID为0xFF,AD0接地了,连接线测量也均导通,只有5、6cm长,初始化mpu的代码如下:
u8 MPU_Init(void)
{
    u8 res;
    IIC_Init();//初始化IIC总线
    delay_ms(500);
    MPU_Write_Byte(MPU_PWR_MGMT1_REG,0X80);    //复位MPU
  delay_ms(100);
    MPU_Write_Byte(MPU_PWR_MGMT1_REG,0X00);    //唤醒MPU
    MPU_Set_Gyro_Fsr(3);                    //陀螺仪传感器,±2000dps
    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,0X00);    //加速度与陀螺仪都工作
        MPU_Set_Rate(50);                        //设置采样率为50Hz
     }
   
    else return 1;
   
    return 0;
}



作者: 正点原子    时间: 2018-11-4 02:18
帮顶
作者: qinxiaoxiao    时间: 2018-11-4 11:43
接收器件地址为oxFF是因为没接收到IIC的应答信号,太蠢了我!但是调试好,器件地址为0x00,很郁闷还是不对啊,求大佬指点




欢迎光临 OpenEdv-开源电子网 (http://47.111.11.73/) Powered by Discuz! X3.4