[求助] 求助

zzbaizhi   2012-2-9 16:24 楼主

void ReceiveAck(void)
{
  unsigned char i = 0;
  SCL_1;
  Delay(5);
  DIR_IN;
  while ((SDA_IN == 0x01 /*sda==1*/) && (i < 255)/*调试方便,可以不要*/)
  {
    i++;
  }
  DIR_OUT;
  SCL_0;
  Delay(5);
}

这是I/O模拟I2C程序中的一个子程序(检查应答位),也就是在第九个clock时,看SDA的状态。

我不明白为什么要设置SCL_1(SCL为高)?按理说主机发送完8个bit后,SCL应该为低,SDA为高(被主机释放)呀

回复评论

暂无评论,赶紧抢沙发吧
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复