I2C總線注意要點(diǎn)
2、每個(gè)連接到總線的器件都可以通過(guò)唯一的地址和一直存在的簡(jiǎn)單的主機(jī)/從機(jī)關(guān)系軟件設(shè)定地址,主機(jī)可以作為主機(jī)發(fā)送器或主機(jī)接收器。
3、在傳輸數(shù)據(jù)的時(shí)候,SDA線必須在時(shí)鐘的高電平周期保持穩(wěn)定,SDA的高或低電平狀態(tài)只有在SCL
4、SCL
5、SCL
6、數(shù)據(jù)傳輸必須帶響應(yīng),相關(guān)的響應(yīng)時(shí)鐘脈沖由主機(jī)產(chǎn)生。在響應(yīng)的時(shí)鐘脈沖期間發(fā)送器釋放SDA
7、第一個(gè)字節(jié)的頭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應(yīng)答
void
{
u8
SDA_IN();
I2C_delay();
SCL_H;
I2C_delay();
while(SDA_read)
{
errtime--;
if(errtime==0)
{
}
}
SCL_L;
SDA_OUT();
I2C_delay();
}
//寫入單字節(jié)數(shù)據(jù)
void
{
if((Data<
{
SDA_H;
}
else
{
SDA_L;
}
I2C_delay();
SCL_H;
I2C_delay();
SCL_L;
SDA_L;
I2C_delay();
I2C_delay();
}
評(píng)論