| 
 
| 举个例子:结束信号:SCL 为高电平时,SDA 由低电平向高电平跳变,结束传送数据。 这是库函数指南上写的 ,正确I2C协议 void IIC_Stop(void)
 {
 SDA_OUT();//sda线输出
 IIC_SCL=0;                                                                                                     一开始SCL,SDA是低电平,延时4US  SCL变高电平,然后SDA变高电平,延时。这能识别出来结束信号吗?
 IIC_SDA=0;//STOP:when CLK is high DATA change form low to high
 delay_us(4);
 IIC_SCL=1;
 IIC_SDA=1;//发送I2C总线结束信号
 delay_us(4);
 这是我以前看到用C51写的
 void ADXL345_Stop()
 {
 SDA = 0;                    //拉低数据线                     先让SCL变高,然后延时,SDA再拉高。 同样是SCL先高SDA再高,但我总觉得这个更符合,或是更安全。。。
 SCL = 1;                    //拉高时钟线
 Delay5us();                 //延时
 SDA = 1;                    //产生上升沿
 Delay5us();                 //延时
 }
 | 
 |