欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 關(guān)于IIC的應(yīng)答,請各位大佬幫幫忙,剛剛學(xué)51單片機(jī) [打印本頁]

作者: 梯度    時間: 2020-8-13 21:20
標(biāo)題: 關(guān)于IIC的應(yīng)答,請各位大佬幫幫忙,剛剛學(xué)51單片機(jī)
這里的應(yīng)答怎么理解,還有后面的I2cReadRespon怎么注釋了

1597324697053.jpg (1015.73 KB, 下載次數(shù): 79)

1597324697053.jpg

1597324790778.jpg (1.14 MB, 下載次數(shù): 69)

1597324790778.jpg

作者: jimmyfans    時間: 2020-8-13 21:53
對方連續(xù)發(fā)送的時候,也可以不產(chǎn)生應(yīng)答
作者: Y_G_G    時間: 2020-8-13 22:03
C語言不會
IIC的應(yīng)答是這樣子的:不管是讀還是寫,每8個位(一個字節(jié))之后,一定要有一個應(yīng)答.
向IIC器件寫入:寫入完成一個字節(jié)之后,由IIC器件產(chǎn)生應(yīng)答(低電平),單片機(jī)等待低電平,出現(xiàn)低電平就表示器件已經(jīng)有了應(yīng)答
讀取:在讀取完一個字節(jié)之后,由單片機(jī)向IIC器件發(fā)送應(yīng)答信號(低電平)
作者: 梯度    時間: 2020-8-13 22:42
還有在主機(jī)發(fā)送應(yīng)答哪里,等待應(yīng)答是SCL=1,不是應(yīng)該為零才對嘛?
作者: icephantom    時間: 2020-8-13 22:54
應(yīng)答:
     200us時間內(nèi),等待從機(jī)回答一個ACK信號(就是拉低SDA);如果超過200us,從機(jī)不會答,則拉低SCL,等待下一個操作。
I2cReadRespon怎么注釋了
    這個有沒有后續(xù)程序?
    如果沒有的話,I2CReadByte()函數(shù)最后第三步 把SCL 拉低了,就不用再重復(fù)低SCL。
作者: 心有浮生    時間: 2020-8-14 09:36
應(yīng)答就是從機(jī)告訴主機(jī)我在聽你說話,你可以繼續(xù)說。如果從機(jī)不在聽主機(jī)說話,那么主機(jī)就不會接著往下說了。
51里面如果把io口置高就是輸入模式。如果置低就是輸出模式,顯然應(yīng)答是要把io口置高來接收從機(jī)的信息。
作者: lp2323    時間: 2020-8-14 11:18
首先baiIIC通信要分清主機(jī)與從機(jī)的關(guān)系,在du主機(jī)對從機(jī)進(jìn)行寫操zhi作時,一般dao是在傳送完一個數(shù)據(jù)之后單片機(jī)就進(jìn)入檢測應(yīng)答信號狀態(tài):先將兩個腳置位SDA=1;SCL=1;然后在一定時間內(nèi)不斷檢測SDA腳的電平狀態(tài),比如說你弄個循環(huán)for(i=255;i>0;i--){..;if(...)break;...}進(jìn)行不斷判斷,當(dāng)SDA的電平為低時就跳出循環(huán),說明此時從機(jī)已經(jīng)ACK,就可說明是I2C器件拉低;如果為高時,則一直判斷完整個循環(huán),到最后還為高時,就說明沒有應(yīng)答。  2、寫應(yīng)答和讀應(yīng)答肯定有所區(qū)別的。寫應(yīng)答是在你讀從機(jī)數(shù)據(jù)期間,當(dāng)你接收到一個數(shù)據(jù)時,可以應(yīng)答的(想繼續(xù)通信就應(yīng)答),就將SDA復(fù)位(拉低),不想應(yīng)答(想結(jié)束通信時)就置位(SDA=1)。讀應(yīng)答則在主機(jī)寫數(shù)據(jù)給從機(jī)期間,每當(dāng)從機(jī)接收到一個數(shù)據(jù)就會應(yīng)答一下(將數(shù)據(jù)SDA線拉低),主機(jī)將不斷檢測SDA線的電平,主機(jī)就是憑SDA的電平狀態(tài)才知道從機(jī)是否已經(jīng)正確地接收了主機(jī)發(fā)送的
作者: 梯度    時間: 2020-8-14 11:45
Y_G_G 發(fā)表于 2020-8-13 22:03
C語言不會
IIC的應(yīng)答是這樣子的:不管是讀還是寫,每8個位(一個字節(jié))之后,一定要有一個應(yīng)答.
向IIC器件寫入 ...

哪為什么I2cReadRespon哪里注釋了呢?
作者: Y_G_G    時間: 2020-8-14 13:57
梯度 發(fā)表于 2020-8-14 11:45
哪為什么I2cReadRespon哪里注釋了呢?

I2cReadRespon后面不是完整的代碼,沒有看到時鐘的操作
讀取數(shù)據(jù)的應(yīng)答是為了告訴IIC器件下一個動作要做什么
應(yīng)答:繼續(xù)輸出數(shù)據(jù)
不應(yīng)答:停止輸出數(shù)據(jù)
作者: 梯度    時間: 2020-8-18 17:31
Y_G_G 發(fā)表于 2020-8-14 13:57
I2cReadRespon后面不是完整的代碼,沒有看到時鐘的操作
讀取數(shù)據(jù)的應(yīng)答是為了告訴IIC器件下一個動作要做 ...

好的,謝謝哈
作者: 梯度    時間: 2020-8-18 17:34
lp2323 發(fā)表于 2020-8-14 11:18
首先baiIIC通信要分清主機(jī)與從機(jī)的關(guān)系,在du主機(jī)對從機(jī)進(jìn)行寫操zhi作時,一般dao是在傳送完一個數(shù)據(jù)之后單 ...

謝謝大佬的指教。




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1