i2c有8位資料,為7位選址+r/w。
當scl為高電平時,sda從高電平向低電平切換,為i2c的起始條件。
當scl為低電平時,sda由低電平向高電平切換,為i2c的停止條件。
scl保持低電平,主機則處於等待狀態。
ack為響應,傳送完乙個資料後等待響應。
從i2c接收乙個位元組:
1、初始化
i2c start
發設定暫存器位址和設定數(例如時鐘晶元設定為24小時顯示,先傳送24小時顯示位所在的暫存器位址,然後再傳送設定數)
i2c stop
2、i2c讀(指定讀取位址)(sd2300)
start
定址位址+0(寫)
ack內部位址+傳輸模式
ackstart
定址位址+1(讀)
ack 資料
ack/nack
stop
微控制器之I2C匯流排原理
採用序列匯流排技術可以大大簡化硬體的設計,體積減少,可靠性高。常見的匯流排,i2c inter ic bus 單匯流排,spi匯流排。i2c序列匯流排 1 進行多主機通訊 2 兩根雙線訊號線,一根資料線sda,另外一根時鐘線scl,接上拉電阻,匯流排空閒為高電平。只要有低電平,匯流排就會被拉低電平。...
微控制器 I2C匯流排通訊程式
為保證資料的可靠性,i2c匯流排的資料傳送有嚴格的時序要求。i2c匯流排的起始訊號 終止訊號 傳送 0 及傳送 i2c匯流排寫操作,待寫入位元組dat,返回值為應答狀態 i2c sda 1 8位資料傳送完後,主機釋放sda,以檢測從機應答 i2cdelay i2c scl 1 拉高scl ack i...
51微控制器軟體模擬i2c學習記錄
剛學學stm32的i2c時,一大堆的配置,配置起來也麻煩。看著手裡有塊51開發板,就學著用軟體模擬i2c。include define uchar unsigned char define uint unsigned int sbit sda p0 1 sbit scl p0 0 void dela...