问题 :为什么要先拉低SCL,再拉低SDA,根据读取时序图不应先拉低SDA,再拉低SCL
```c
//1.先拉低SCL,再拉低SDA
//2.拉高SCL
//3.拉低SCL## 标题
void I2C_Ack(void)
{
IIC_SCL=0; //先拉低SCL,使得SDA数据可以发生改变
IIC_SDA=0;
delay_us(2);
IIC_SCL=1;
delay_us(5);
IIC_SCL=0;
}
```
问题 :为什么要先拉低SCL,再拉低SDA,根据读取时序图不应先拉低SDA,再拉低SCL
```c
//1.先拉低SCL,再拉低SDA
//2.拉高SCL
//3.拉低SCL## 标题
void I2C_Ack(void)
{
IIC_SCL=0; //先拉低SCL,使得SDA数据可以发生改变
IIC_SDA=0;
delay_us(2);
IIC_SCL=1;
delay_us(5);
IIC_SCL=0;
}
```
仔细看看这I2C的时序图,在scl为高时改变sda只能在开始和结束位。
其他的位只能在scl为低时改变sda,包括你代码中的ack