单片机学习小组
直播中

袁嫚玲

7年用户 179经验值
私信 关注

I2C总线中是如何实现读一个字节的?

I2C总线中是如何实现读一个字节的?
例如mcu要从某器件中读一个字节 有如下一段程序
uchar readbyte()
{
    uchar i,k;
    scl=0;
    delay();
    sda=1;
    for(i=0;i<8;i++)
{   
    scl=1;
    delay();
    k=(k<<1)|sda;
    scl=0;
    delay();
  }
   delay();
   return k;
}
}
}

回帖(4)

王玲

2019-4-22 08:42:40
sda上的数据一位一位读
举报

陈斌

2019-4-22 08:56:33
回复【楼主位】abcyyjjkk:
-------------------------------
首先I2C是连续的通信模式,没有直接限制,有起始时序,终止时序,然后就是不停地接收数据,  开始----for8次---终止   这就是接受了一个字节的数据
举报

车熊鹤

2019-4-22 09:08:26
sda高电平打开I2C,scl一次低电平就传输一个字节。
举报

王越建

2019-4-22 09:19:52
对不同的设备读一字节的方法不一定相同的,要看具体的手册
举报

更多回帖

发帖
×
20
完善资料,
赚取积分