I2C地址问题求助!

2019-07-20 05:41发布

大神们,请教一个I2C问题,关于阿波罗板子上的AT24C02的I2C通信问题

123.jpg

在原理图中,写的IIC地址是0X50, 但是代码里边却是0XA0,代码如下

void AT24CXX_WriteOneByte(u16 WriteAddr,u8 DataToWrite)
{                                                                                                                                                                                          
    IIC_Start();  
        if(EE_TYPE>AT24C16)
        {
                IIC_Send_Byte(0XA0);            //发送写命令
                IIC_Wait_Ack();
                IIC_Send_Byte(WriteAddr>>8);//发送高地址          
        }else IIC_Send_Byte(0XA0+((WriteAddr/256)<<1));   //发送器件地址0XA0,写数据          
        IIC_Wait_Ack();          
    IIC_Send_Byte(WriteAddr%256);   //发送低地址
        IIC_Wait_Ack();                                                                                                              
        IIC_Send_Byte(DataToWrite);     //发送字节                                                          
        IIC_Wait_Ack();                                
    IIC_Stop();//产生一个停止条件
        delay_ms(10);         
}


问题1:这两个地址为什么不一样呢?
问题2:标如果换一个其他器件,我拿到器件原理图,该怎么确认代码该使用哪个地址呢?
希望大佬们不吝赐教啊!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。