對于iic這個(Inter-Integrated?Circuit)集成電路之間的通信的這個稱呼還很陌生的,只知道是用來通信的一個橋梁,他可能還有一個名字——集成電路總線。
? ? 對于集成電路總線(iic)還要從代碼中說起,我最開始是從STM32開發(fā)板學起的沒學過51單片機(其實是學過了但一點印象都沒有畢竟我們學校有開過單片機這門課怎么可能沒講51呢)。我要做的項目是要采集MPU6050模塊的數(shù)據(jù),我在做這個項目中看過正點原子的例程他們是有這個例程講解的,我以為修修改改輸入方式把例程中的程序忘開發(fā)板一裝就OK了,結(jié)果給我顯示mpu6050初始化不成功的提示(運行的程序我有加判斷語句的習慣)。我當時的反應(yīng):是我勒個去,什么情況。經(jīng)過查找結(jié)果發(fā)現(xiàn)是我用的iic的兩根總線——數(shù)據(jù)線和時鐘線 的地址出現(xiàn)錯誤,我用的是PB6、PB7口而例程中提供的例程是PC口的地址,一塌糊涂。就去從新看了如何修改IIC的視頻及GPIO的視頻學習如何改iic的配置寄存器。起碼我現(xiàn)在會對例程修改配置寄存器,對于iic的底層的通信協(xié)議了解一些、對應(yīng)用的通信協(xié)議了解大概。但對應(yīng)用的通信協(xié)議還有不懂得,看來對iic還需繼續(xù)學習和應(yīng)用。
再補點知識:
I2CInter-Integrated?Circuit總線是用于連接微控制器及其外圍設(shè)備。
發(fā)送器:發(fā)送數(shù)據(jù)到總線的器件;
接收器:從總線接收數(shù)據(jù)的器件;
主機:啟動數(shù)據(jù)傳送并產(chǎn)生時鐘信號的設(shè)備;
從機:被主機尋址的器件;
1、I2C(Inter-Integrated Circuit)總線是一種由PHILIPS公司開發(fā)的兩線式串行總線,用于連接微控制器及其外圍設(shè)備(特別是外部存儲器件)。?
2、UART通信只需要一條線即可完成,I2C總線是由數(shù)據(jù)線SDA和時鐘SCL構(gòu)成的串行總線,可發(fā)送和接收數(shù)據(jù)。?
3、從應(yīng)用上來講 ,UART通信多用于板間通信,I2C通信多用于板內(nèi)通信。