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