当前位置: 代码迷 >> 单片机 >> IIC 编程解决办法
  详细解决方案

IIC 编程解决办法

热度:328   发布时间:2016-04-28 16:24:31.0
IIC 编程
uchar Read_A_Byte()
{
  uchar i,b;
for(i=0;i<8;i++)
{
SCL=1;b<<=1;B|=SDA;SCL=0;
}
return b;
}

帮俺讲一下,这个程序。为什么能读一个字节,B是干什么用?

------解决方案--------------------
这个程序有问题。
大写的 B 应该改为小写的 b 。
------解决方案--------------------
探讨
这个程序有问题。
大写的 B 应该改为小写的 b 。

------解决方案--------------------
接二楼的,比如你要接受的数据为10101011(8位),b刚开始初始化为00000000
循环开始,在scl为高时,读取sda上的数据,对于数据10101011,按高位读入,则第一个读入为1,即scl为高时,sda应该为1,第一个循环结束,b=00000001
第二个循环,b左移一位,b=00000010,再次读入sda,应该为0,则b=b|sda后,b=00000010,第三个循环再左移,得00000100,再读入,得00000101
知道b=10101011,把b返回,就是得到i2c上的数据了
应该明白了吧
------解决方案--------------------
代码编写者没有一个好习惯

胡乱起名
  相关解决方案