找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索

C語言中位操作問題

查看數(shù): 2067 | 評(píng)論數(shù): 8 | 收藏 0
關(guān)燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請(qǐng)稍候......
發(fā)布時(shí)間: 2018-5-25 00:00

正文摘要:

這個(gè)EEPROM的程序里邊,讀操作這個(gè)dat|=I2C_SDA是怎么回事?麻煩會(huì)的大神給我講講,小弟不勝感激

回復(fù)

ID:284659 發(fā)表于 2018-5-25 17:30
和它或,按位或
ID:92570 發(fā)表于 2018-5-25 16:19
讀取當(dāng)前I2C_SDA上的數(shù)據(jù) (一個(gè)bit讀取)
ID:91114 發(fā)表于 2018-5-25 14:09
dat = dat | I2C_SDA;
ID:164602 發(fā)表于 2018-5-25 10:05
你寫的這個(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ù)。
ID:330198 發(fā)表于 2018-5-25 09:09
I2C標(biāo)準(zhǔn)讀取數(shù)據(jù)的流程,在時(shí)鐘線拉高的情況下,數(shù)據(jù)線的高低電平由dat保存,每保存一位dat就左移一位,因?yàn)槭嵌M(jìn)制只能這樣保存數(shù)據(jù)。
ID:337566 發(fā)表于 2018-5-25 08:41
加上sda的數(shù)據(jù)啊
ID:18297 發(fā)表于 2018-5-25 08:27
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位)。
ID:328769 發(fā)表于 2018-5-25 01:48
就是dat=dat或上i2c的數(shù)據(jù)嗯

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表