首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

I2C总线的有关问题

2012-02-21 
I2C总线的问题小弟用的ARM7,在做IIC读写实验 。 情况是这样的:当执行写任务时,发送开始信号能收到从机的回

I2C总线的问题
小弟用的ARM7,在做IIC读写实验 。 情况是这样的:当执行写任务时,发送开始信号能收到从机的回应信号08H。但到读的时候,发送开始信号就收不到回应信号了。相应程序如下:

void I2Cstart()//开始信号;
{
  I2CONSET=STA;
  do {} while(I2CSTAT!=0x08);
  I2CONCLR=STA;
}

void writebyte(U8 data)
{
  I2DAT=data;
  I2CONCLR=SI;
}


void read24c02(void)
{
  U8 i;
  I2Cstart();
  writeaddr(0);
 // writedata(0);
  I2Cstop();

  I2Cstart();
  writeaddr(1);
  for(i=0;i<4;i++) I2C_buf2[i]=0;
  for(i=0;i<3;i++)
  {
  I2C_buf2[i]=readbyte(!lastbyte);
  }
  I2C_buf2[3]=readbyte(lastbyte);
  I2Cstop();
  
}

[解决办法]
E2PROM的写读地址是A0/A1;
读E2PROM时,开始+器件写地址+单元地址+开始+器件读地址+读1字节。。。

热点排行