这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 各位高手请问一下有谁熟悉I2C通讯的吗?

共4条 1/1 1 跳转至

各位高手请问一下有谁熟悉I2C通讯的吗?

助工
2014-07-29 10:00:18     打赏
各位高手请问一下有谁熟悉I2C通讯的吗?小白想请教一个问题

从设备将应答位输出到SDA线上
 Void respons( )
  {    uchar i;
        SCL=1;
       Delay( );
      While((SDA==1)&&(i<250) )i++;
             SCL=0;
     Delay();
}


为什么While((SDA==1)&&(i<250) )i++;这条语句要相与

助工
2014-07-29 10:25:55     打赏
2楼
你这个使用查询的方式等待I2C进行应答的,只要满足其中一个条件的话就认为得到应答。一般是通讯正常的话那就是SDA被拉高,通讯不正常的话那就是等待一段时间后,没有得到相应,认为对方收到数据,当初学I2C就是这么解释的.至于为啥是与我也纳闷!!!

专家
2014-07-29 10:28:17     打赏
3楼
这是在等待应答信号。如果没有收到应答信号,且等待的次数小于250次,就继续等待。

助工
2014-07-29 10:35:22     打赏
4楼

同学习I2C中  个人感觉是

i<250 i++用于延时跳出循环

不加这个的话如果由于某种原因从设备没有应答信号的话  

程序会陷入While((SDA==1)的死循环


共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]