外接MPU6050的初始化问题,返回器件地址209

2019-07-20 21:07发布

看了论坛的帖子,好多人说是IIC通信的问题,我想也是。内置MPU6050的器件地址为0x68,外置MPU6050的器件地址为0x69,相加刚好为209。
我是让两个MPU连在一条IIC总线上了,但是内置MPU和EEPROM也在同一条线上不也好好工作吗?求解
除此之外,MPU_Write_Byte()函数从来没有正常响应过,在写寄存器地址( IIC_Send_Byte(reg))之后就没响应了(iic_wait_ack返回错误1)
大哥们帮忙看看啊

u8 MPU_Write_Byte(u8 reg,u8 data)  

    IIC_Start(); 
IIC_Send_Byte((MPU_ADDR<<1)|0);//发送器件地址+写命令
if(IIC_Wait_Ack()) //等待应答
{
IIC_Stop();
LCD_ShowString(30,130,200,16,16,"MPU_ADDR Error");
while(1);
return 1;
}
    IIC_Send_Byte(reg); //写寄存器地址
    if(IIC_Wait_Ack())
{
LCD_ShowString(30,130,200,16,16,"reg addr Error");
delay_ms(2000); //等待应答 
}
IIC_Send_Byte(data);//发送数据
if(IIC_Wait_Ack()) //等待ACK
{
IIC_Stop();  
return 1;  
}  
    IIC_Stop();  
return 0;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。