at24c1024 地址超出65536怎么写

2019-09-03 13:50发布

现在小弟的用的[size=17.1429px] [size=17.1429px]DataAdd 65535以内的数据都正常,,,[size=17.1429px] [size=17.1429px]DataAdd超出65535,,想用17位的存储,这边出错,,,有没有大神搞过




static uint8_t I2C_Wite_Byte(uint8_t cmd,uint32_t DataAdd,uint8_t Data)   //17
{
        I2C_Start();
        I2C_Write((cmd & 0xfe)|0x02); //02 17位
       
        DataAdd=DataAdd & 0x0001FFFF; //17位的地址
       
        if(!I2C_Check_Ack())
        {
                return 0;
        }
        I2C_Write((uint8_t)(DataAdd >>8));
        if(!I2C_Check_Ack())
        {
                return 0;
        }
        I2C_Write((uint8_t)(DataAdd % 256));
        if(!I2C_Check_Ack())
        {
                return 0;
        }
        I2C_Write(Data);
        if(!I2C_Check_Ack())
        {
                return 0;
        }
        I2C_Stop();
        IIC_Delay(10 * DELAY_TIME );
        return 1;
}

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