chuandaoxy 发表于 2021-2-9 07:55

24c02跨页写的问题

我在网上找到了几个跨页写的版本,经过尝试都失败了,下面是关键函数
void eeprom_write_nbyte(uint addr,uchar *pbuf,uchar len)        //eeprom写n字节       

{
#if 1
    while(len--)
    {
      //iic_write_byte(EEPROM_24CXX_SLAVE_ADDR,addr++,*pbuf++);
                WriteI2CByte (EEPROM_24CXX_SLAVE_ADDR,addr++,*pbuf++);

      delay_ms(5); //24cxx寫一字節後必須延時       
    }       
#else
    while(len)
    {
      //iic_write_byte(EEPROM_24CXX_SLAVE_ADDR,addr,*pbuf);
                WriteI2CByte (EEPROM_24CXX_SLAVE_ADDR,addr++,*pbuf++);
      addr ++;
      pbuf ++;
      len --;
    }       
#endif
}

但是在上面的函数里调用了一个WriteI2CByte (EEPROM_24CXX_SLAVE_ADDR,addr++,*pbuf++);
而我的函数是这样的,写一个字节,无法调用,那位看看如何解决,谢谢
void WriteI2CByte(uchar ByteData)

{
    uchar i,temp;
    temp = ByteData;
    // (StartI2C()最后已经先将SCL变0了):
    for(i=0;i<8;i++){
      temp <<= 1;   
      SDA = CY;      
      delay5us();   
      SCL = 1;
      delay5us();   
      SCL = 0;
      delay5us();   
    }
}
页: [1]
查看完整版本: 24c02跨页写的问题