1、只要求两条总线线路:一条串行数据线SDA,一条串行时钟线SCL。
2、每个连接到总线的器材都能够经过仅有的地址和一向存在的简略的主机/从机联系软件设定地址,主机能够作为主机发送器或主机接收器。
3、在传输数据的时分,SDA线有必要在时钟的高电平周期保持稳定,SDA的高或低电平状况只要在SCL
4、SCL
5、SCL
6、数据传输有必要带呼应,相关的呼应时钟脉冲由主机发生。在呼应的时钟脉冲期间发送器开释SDA
7、第一个字节的头7
void
{
u8
while(i)
{
}
}
void
{
SDA_H;
I2C_delay();
SCL_H;
I2C_delay();
SDA_L;
I2C_delay();
SCL_L;
I2C_delay();
}
void
{
SDA_L;
I2C_delay();
SCL_H;
I2C_delay();
SDA_H;
I2C_delay();
}
//等候ACK应对
void
{
u8
SDA_IN();
I2C_delay();
SCL_H;
I2C_delay();
while(SDA_read)
{
errtime–;
if(errtime==0)
{
}
}
SCL_L;
SDA_OUT();
I2C_delay();
}
//写入单字节数据
void
{
if((Data<
{
SDA_H;
}
else
{
SDA_L;
}
I2C_delay();
SCL_H;
I2C_delay();
SCL_L;
SDA_L;
I2C_delay();
I2C_delay();
}