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