![]() |
和它或,按位或 |
讀取當前I2C_SDA上的數據 (一個bit讀取) |
dat = dat | I2C_SDA; |
你寫的這個,是收集位數據,轉換為8位字節的表達式。 第一:“或|”運算:就是有1得1,全為零才為零。 第二:dat是8位,I2C_SDA是一位。 當兩數據進行或賦值運算時,就將SDA的一位數據,加入到8位的dat低位中,再通過移位,得到一個完整的8位數據。 |
I2C標準讀取數據的流程,在時鐘線拉高的情況下,數據線的高低電平由dat保存,每保存一位dat就左移一位,因為是二進制只能這樣保存數據。 |
加上sda的數據啊 |
dat <<1; //左移一位, dat|=I2C_SDA; //dat 或 I2C_SDA,說明dat的最低位(0)和I2C_SDA或,相當于取了I2C—SDA. 循環8次,相當于取了8次I2C—SDA位,將I2C—SDA的串行發送的數字8位取成一個8位數。 即讀取了一個字節的數(8位)。 |
就是dat=dat或上i2c的數據嗯 |