标题:
C语言中位操作问题
[打印本页]
作者:
134849694164151
时间:
2018-5-25 00:00
标题:
C语言中位操作问题
这个EEPROM的程序里边,读操作这个dat|=I2C_SDA是怎么回事?麻烦会的大神给我讲讲,小弟不胜感激
1527177556791.jpg
(86.71 KB, 下载次数: 38)
下载附件
2018-5-24 23:59 上传
作者:
ZYL520
时间:
2018-5-25 01:48
就是dat=dat或上i2c的数据嗯
作者:
zjjhtony
时间:
2018-5-25 08:27
dat <<1; //左移一位,
dat|=I2C_SDA; //dat 或 I2C_SDA,说明dat的最低位(0)和I2C_SDA或,相当于取了I2C—SDA.
循环8次,相当于取了8次I2C—SDA位,将I2C—SDA的串行发送的数字8位取成一个8位数。
即读取了一个字节的数(8位)。
作者:
nipingbo
时间:
2018-5-25 08:41
加上sda的数据啊
作者:
zhanghyg
时间:
2018-5-25 09:09
I2C标准读取数据的流程,在时钟线拉高的情况下,数据线的高低电平由dat保存,每保存一位dat就左移一位,因为是二进制只能这样保存数据。
作者:
HC6800-ES-V2.0
时间:
2018-5-25 10:05
你写的这个,是收集位数据,转换为8位字节的表达式。
第一:“或|”运算:就是有1得1,全为零才为零。
第二:dat是8位,I2C_SDA是一位。
当两数据进行或赋值运算时,就将SDA的一位数据,加入到8位的dat低位中,再通过移位,得到一个完整的8位数据。
作者:
aybco
时间:
2018-5-25 14:09
dat = dat | I2C_SDA;
作者:
Brave_ZD
时间:
2018-5-25 16:19
读取当前I2C_SDA上的数据 (一个bit读取)
作者:
gcm520
时间:
2018-5-25 17:30
和它或,按位或
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1