IIC程序,等待应答函数的疑惑

2019-10-15 00:27发布

//返回值: 1,接收应答失败
// 0,接收应答成功
u8 IIC_Wait_Ack(void)
{
u8 ucErrTime=0;
SDA_IN(); //SDA 设置为输入
IIC_SDA=1;delay_us(1);
IIC_SCL=1;delay_us(1);
while(READ_SDA)
{
ucErrTime++;
if(ucErrTime>250)
{
IIC_Stop();
return 1;
}
}
IIC_SCL=0;//时钟输出 0
return 0;
}

请问,SDA_IN()设置为输入后,IIC_SDA=1是否有效?难道在输入模式下也可由内部输出高电平?
本人理解:输入模式后,IIC_SDA应该由外部控制,所以IIC_SDA=1应该写在SDA_IN()前面
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。