打印
[51单片机]

24c02跨页写的问题

[复制链接]
480|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chuandaoxy|  楼主 | 2021-2-9 07:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在网上找到了几个跨页写的版本,经过尝试都失败了,下面是关键函数
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();     
    }
}

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

855

主题

1044

帖子

4

粉丝