急! I2C主机等待从机应答时从机SDA线的数据问题

2019-07-16 00:34发布



I2C主机等待从机应答时从机SDA线的数据问题
/******应答信号*********/
void response()
{
        uchar i;
    i=1;
        scl=1;
        delay();
        while((sda==1)&&(i<250))i++; //条件其中任意一个为假即跳出
        scl=0;
        delay();
}

如题,例子中主机等待255次若从机还没将SDA拉低应答,则默认应答是怎么回事?应该是默认非应答(高电平1)啊,,还有当传送数据的时候,在第8个时钟(也就是传送数据得最后一位)SDA是0。那第9个时钟时,不用从机拉低sda就应答了?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
wenhui8813
1楼-- · 2019-07-16 02:58
你可以在第8个数据发送完之后拉高SDA啊,等待从机应答。如果没有应答则视为发送失败,要重新发送数据。
xieyang
2楼-- · 2019-07-16 03:07
本帖最后由 xieyang 于 2013-5-18 10:14 编辑
wenhui8813 发表于 2013-5-17 16:24
你可以在第8个数据发送完之后拉高SDA啊,等待从机应答。如果没有应答则视为发送失败,要重新发送数据。 ...


谢谢 ,明白了

一周热门 更多>