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()前面
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
login_FAE
1楼-- · 2019-10-15 01:40
可以内部上下拉的
aiyeba
2楼-- · 2019-10-15 06:35
楼主真的是好眼力,佩服。
heighteen
3楼-- · 2019-10-15 11:37
你的意思是: IIC_SDA=1作用是内部上拉?
jinggx
4楼-- · 2019-10-15 15:20
你要是有 代码洁癖强迫症,那就改吧,没有那就不用管它了。没有那么多为什么。
EAON
5楼-- · 2019-10-15 20:46
 精彩回答 2  元偷偷看……
mxiaotao
6楼-- · 2019-10-15 22:06
在下表示看不明白

一周热门 更多>