赞
踩
验证数据写入功能正常,时序正常。但是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拉低这边也跟程序这边都不匹配。这里没搞清楚
下面两张图都是正常写入数据的时序,从中可发行数据对应关系均正常。应答放大如上图为异常。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。