熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
發(fā)布時(shí)間: 2018-5-25 00:00
正文摘要:這個(gè)EEPROM的程序里邊,讀操作這個(gè)dat|=I2C_SDA是怎么回事?麻煩會(huì)的大神給我講講,小弟不勝感激 |
和它或,按位或 |
讀取當(dāng)前I2C_SDA上的數(shù)據(jù) (一個(gè)bit讀取) |
dat = dat | I2C_SDA; |
你寫的這個(gè),是收集位數(shù)據(jù),轉(zhuǎn)換為8位字節(jié)的表達(dá)式。 第一:“或|”運(yùn)算:就是有1得1,全為零才為零。 第二:dat是8位,I2C_SDA是一位。 當(dāng)兩數(shù)據(jù)進(jìn)行或賦值運(yùn)算時(shí),就將SDA的一位數(shù)據(jù),加入到8位的dat低位中,再通過移位,得到一個(gè)完整的8位數(shù)據(jù)。 |
I2C標(biāo)準(zhǔn)讀取數(shù)據(jù)的流程,在時(shí)鐘線拉高的情況下,數(shù)據(jù)線的高低電平由dat保存,每保存一位dat就左移一位,因?yàn)槭嵌M(jìn)制只能這樣保存數(shù)據(jù)。 |
加上sda的數(shù)據(jù)啊 |
dat <<1; //左移一位, dat|=I2C_SDA; //dat 或 I2C_SDA,說明dat的最低位(0)和I2C_SDA或,相當(dāng)于取了I2C—SDA. 循環(huán)8次,相當(dāng)于取了8次I2C—SDA位,將I2C—SDA的串行發(fā)送的數(shù)字8位取成一個(gè)8位數(shù)。 即讀取了一個(gè)字節(jié)的數(shù)(8位)。 |
就是dat=dat或上i2c的數(shù)據(jù)嗯 |
Powered by 單片機(jī)教程網(wǎng)