24C64读写校验失败

2019-07-20 04:07发布

移植原子最新的IIC代码操作24C64芯片,读写校验始终失败,写入的是1 2 3 4 5 6....,读出的值每次都是0A,0A,FE这些,折腾了一天都整好。看原子的代码有句话我没看懂,
//初始化IIC接口
void AT24Cxx_Init(void)
{

        AT24Cxx_PortInit();//IIC初始化
        AT24CXX_Check();
}
//在AT24CXX指定地址读出一个数据
//ReadAddr:开始读数的地址  
//返回值  :读到的数据
uint8_t AT24CXX_ReadOneByte(uint16_t ReadAddr)
{                                  
        uint8_t temp=0;                                                                                                                                                               
        IIC_Start();  
        if(EE_TYPE>AT24C16)
        {
                IIC_Send_Byte(0XA0);           //发送写命令
                IIC_Wait_Ack();
                IIC_Send_Byte(ReadAddr>>8);//发送高地址            
        }
        else
          IIC_Send_Byte(0XA0+((ReadAddr/256)<<1));   //发送器件地址0XA0,写数据           
        IIC_Wait_Ack();
        IIC_Send_Byte(ReadAddr%256);   //发送低地址
        IIC_Wait_Ack();            
        //IIC_Start();                       这里为为什么还要加个IIC起始信号
        IIC_Send_Byte(0XA1);           //进入接收模式                          
        IIC_Wait_Ack();         
        temp=IIC_Read_Byte(0);                  
        IIC_Stop();//产生一个停止条件            
        return temp;
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。