I2C是串行总线中比较简单的一种协议.
本工程为读写EEPROM_24c02
只需注意(1)SDA在SCL高电平改变为控制信号,低电平期间改变为数据信号;
(2)无论任何情况,每写一个数据都需要应答,连读操作亦需应答;
(3)每写一个数据需要等待约10ms以确保EEPROM内部写周期结束.
原代码附上:
发布
uchar RdOperation(void){ uchar time;//一个字节 uchar DataIn="0";//读进来的数据 for(time=0;time<8;time++) { SCL="0"; Delay4Us(); SCL=1; Delay4Us(); DataIn=(DataIn<<1)|SDA; }
这个好像有错误啊 , 读数据应该是EEPROM输出数据,应该是SCL的下降沿阿,SCL应该先为1 再为0
用户1399561 2009-3-14 22:20
用户1482059 2008-7-12 11:28
用户272124 2007-12-11 17:51
uchar RdOperation(void)
{
uchar time;//一个字节
uchar DataIn="0";//读进来的数据
for(time=0;time<8;time++)
{
SCL="0";
Delay4Us();
SCL=1;
Delay4Us();
DataIn=(DataIn<<1)|SDA;
}
这个好像有错误啊 , 读数据应该是EEPROM输出数据,应该是SCL的下降沿阿,SCL应该先为1 再为0