void IIC_Stop(void)
{
SDA_OUT();//sda线输出
IIC_SCL=0;
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);
}
这个代码中的第三行,解释是说:when CLK is high DATA change form low to high,那不是意味着起始状态IIC_SCL=1;但是为什么代码中写的为IIC_SCL=0;
新手小白初学,问的问题太水,忘大家包涵,也希望大神能回答下小弟的疑问,小弟不甚感激。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
CLK=1是不可能的,起始信号之后的任何数据发送和接收完成后CLK都必须保持低电平,直到停止信号后CLK才能保持高。简单的说就是CLK=1时不允许SDA有任何电平变化。
一周热门 更多>