![]() |
發(fā)布時間: 2018-5-18 01:04
正文摘要:麻煩大家?guī)臀铱匆幌拢倚枰銈儭>褪顷P于I2c的時序圖的問題,發(fā)送字節(jié)的時候,不管發(fā)送的事0還是1不是都應該有電平的高低變化嗎?那么你看看我下邊的這個圖,for循環(huán)里邊,這個,放發(fā)送的dat第一個位的時候,假設 ... |
HC6800-ES-V2.0 發(fā)表于 2018-5-18 07:25 還有一事相求,就是這個dat的那個數(shù)據(jù)是怎么一位一位的傳送過去的呀?有時候高位傳送在前,有時低位在前,我知道那個移位操作,但是不理解數(shù)據(jù)怎么從單片機發(fā)出去的原理 |
林曦 發(fā)表于 2018-5-18 08:40 首先感謝你,然后我還有一個問題想問,那個dat的數(shù)據(jù)到底是怎么發(fā)送出去的呀?就是怎么移位之后,就能發(fā)出去一個字節(jié)呢?不知道聽沒聽懂我說的 |
HC6800-ES-V2.0 發(fā)表于 2018-5-18 07:25 好的,我明白了,感謝你,你真好 |
各位麻煩幫我看看吧 |
I2C發(fā)送數(shù)據(jù)時,只有在SCL低電平的時候,SDA電平改變,發(fā)送一位數(shù)據(jù)。當SDA第一次發(fā)送0時,第二次依舊發(fā)送0,SDA電平是不會改變的。 如圖所示,假如dat為1001 1100,dat右移7位,是將第一位1發(fā)送出去,然后第二位0左移1位,dat為 0011 1000,for第二次循環(huán)發(fā)送第一位0,依次類推,把dat數(shù)據(jù)發(fā)送出去。 |
你可能記錯。 I2C只要求在SCL讀取期間,SDA一定要保證電平穩(wěn)定,沒有說要變化。 例如:發(fā)送字節(jié)0,當SCL到高電平讀數(shù)據(jù)時,只要你的SDA一直都是低電平,持續(xù)5us以上就可以,并沒有說電平變化。 我們一般做法是,先讓SDA置成高或低電平,再讓SCL從低電平跳到高電平,開始讀數(shù)據(jù),就可以了。 你的程序就是這樣的嘛。沒毛病! |
Powered by 單片機教程網(wǎng)