单片机I/O端口模拟I2C时序时,SDA、SCL后的DELAY问题

初始化IIC
void init_IIC()
{
SDA=1;
delay();
SCL=1;
delay();
}
1)起始信号
void start()
{
SDA=1;
delay();
SCL=1;
delay();
SDA=0;
delay();
}

我的问题是:在初始时就已经出现了SDA与SCL的延时,为什么在启动后还要再次延时?只保留SDA=0;delay不可以?启动时先初始化一下不也可以?

第1个回答  2013-10-13
这个当然不可以,I2C是一种总线的协议,上面可以挂接很多器件,为了识别所以每次用的时候都要延时。
第2个回答  2013-10-27
假设我传输完一个数据后,我把IIC给关了,SCL、SDA都为0了。 那再start的时候,scl你不拉高怎么开始呢?
相似回答