先上原子的例程代码
//产生IIC停止信号
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);
}
然后IIC停止的时序信号是当SCL处于逻辑高的时候,SDA由低到高跳变,产生IIC停止信号。
那按照如下代码是否也是可以?
void IIC_Stop(void)
{
SDA_OUT();//sda线输出
IIC_SCL=1;
IIC_SDA=0;//STOP:when CLK is high DATA change form low to high
delay_us(4);
IIC_SDA=1;//发送I2C总线结束信号
delay_us(4);
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
IIC_SDA=0;//可能会产生新的起始信号
一周热门 更多>