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字节。。。