請問I2C匯流排如何實現與微控制器的應用

時間 2023-05-26 01:00:05

1樓:匿名使用者

iic只是乙個通訊協議,只要兩個終端符合這個協議就可以實現資料的交換,有的微控制器已經整合了iic的外設,用起來比較簡單,還有一部分並沒有這樣的外設,就要用io口來模擬出iic的兩條線,一樣可以實現通訊,祝成功~

2樓:匿名使用者

read_byte()之前應發啟動訊號。

在read_byte()中第乙個scl=0:表示讓對方輸入資料;( i2c匯流排是scl=0時從裝置輸出資料,scl=1時主裝置接收資料。)

第乙個sda=1:表示釋放資料線,這樣對方發資料到匯流排上,因為在sda=0時,會線與,所以對方發不了資料。

write_byte中的「scl = 0; delay(1); sda = 1; delay(1); 和read_byte()中乙個意思。只是這裡write_byte之後要接收應答訊號。

可參考下面的資料。

i2c匯流排訊號時序分析。

鐵電儲存器 fm24c16g(i2c介面) 資料手冊時鐘晶元 ds3231(i2c介面) 資料手冊。

最近剛學微控制器一直搞不明白請微控制器的i2c匯流排是什麼?怎麼實現,需要單獨的晶元來實現嗎?

3樓:做而論道

它是一條匯流排,包括兩條導線:一條資料線sda,一條時鐘線scl。

微控制器通過這條匯流排,和外接的各個晶元進行通訊。

想傳送一位元組資料,就必須在資料線sda上一位一位的傳輸;

每傳送一位,在時鐘線scl上要輸出乙個脈衝。

另外還有「起始」、「終止」和「應答」位,這些看時序圖即可理解。

匯流排上,可以掛接多個器件,這就有了「從位址」的問題;

在某個器件內部,可能有多個儲存單元,這就有了「字位址」的問題。

i2c匯流排,確實是很羅嗦的。

4樓:網友

主片和從片之間的通訊線時鐘和資料線。

5樓:匿名使用者

一條是資料線sda,一除錯時鐘線scl,微控制器是更具時序來判斷接受資料的。看懂時序圖就行。

在i2c匯流排協議中應答訊號 非應答訊號作用

bit getack 接收ack i2c 匯流排為什麼應答訊號為低而非應答訊號為高 應答訊號的流程是,微控制器發完8bit資料後把sda拉高 i2c晶元把sda拉低 微控制器收到ack訊號,而非應答訊號則不會被拉低。你的意思我明白,反過來也可以,就是乙個標準而已,不都是人定的嘛。當初設計晶元時已經硬...