软件模拟I2C通讯

I2C协议概述,有相当详细的名词解释

通信数量受限于地址空间和400Pf总线电容。

所有的数据传输过程中,SDA线的电平变化必须在SCL为低电平时进行,SDA线的电平在SCL线为高电平时要保持稳定。

I2C通讯协议软件模拟实现方法:

1、起使信号 

 

1 void I2C_Start(){
2   SDA_H;
3   delay(n); //电平切换时间
4   SCL_H;
5   delay(>4us);  //初始状态必须保持4us以上
6   SDA_L; //在SCL为高时,拉低SDA线发送起始信号。
7   delay(>4.7us); 
8   SCL_L; // 发完一位拉低SCL
9 } 

 

 

2 、终止信号

void I2C_Stop(){

 	SCL_L;

        delay(n);	//电平切换时间

        SDA_L;

        delay(n);

        SCL_H;

        delay(>4us);

        SDA_H;

        delay(>4.7us);

        SCL_L; 

 }                    

  

 

 3、主机发送应答信号ACK

void I2C_Ack(){
 SDA_Out(); SCL_L; delay(n); SDA_L; delay(n);  SCL_H;
delay();
SCL_L; }

 

posted @ 2019-03-24 15:35  geekj  阅读(396)  评论(0编辑  收藏  举报