|
接二楼的,比如你要接受的数据为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上的数据了
应该明白了吧 |
|