AT24C04【EEPROM】iic时序解读

验证数据写入功能正常,时序正常。但是eeprom的应答跟程序写的不匹配,原因暂时没找着,有大佬知道的还请不吝赐教。
等待应答代码如下:

uint8 IIC_WaitACK(void)
{
     
	uint8 a;

	SDA = 1;						//CPU释放SDA总线
	Delay_6us();
	SCL = 1;						//CPU驱动SCL = 1, 此时器件会返回ACK应答
	Delay_6us();
	while(SDA)					//等待应答,CPU读取SDA口线状态
	{
     
		a++;
		if(a>255)
		{
     
			SCL=0;
			Delay_6us();
			return 0;
		}
	}
	SCL = 0;
	Delay_6us();
	return 1;
}

下图,是应答信号,不知道为啥是SCL先拉的高,然后SDA拉低这边也跟程序这边都不匹配。这里没搞清楚AT24C04【EEPROM】iic时序解读_第1张图片
下面两张图都是正常写入数据的时序,从中可发行数据对应关系均正常。应答放大如上图为异常。AT24C04【EEPROM】iic时序解读_第2张图片
AT24C04【EEPROM】iic时序解读_第3张图片

你可能感兴趣的:(AT24C04【EEPROM】iic时序解读)