一起學CC3200系列教程之IIC主機——注意點

汗,本來是想寫IIC教程的,結果發現IIC好像沒有什麼要寫的東西,看看官方的例程,基本的IIC也就出來,難道要我再造輪子? 於是想寫一下注意點。

一般IIC都是用於傳感器的通信的,發現官方的板子自帶的溫度傳感器是SMBUS通信協議的,SMBUS是可以用IIC通信,但是有點小區別,具體的區別自己可以google下。


背景:

N天以前,有個同學說,他用IIC去獲取陀螺儀的數據,結果怎麼都不成功。剛好我在N天前有用過IIC,知道了CC3200的IIC跟我們平常用的IIC有點不太一樣(平常我用的是軟件的IIC),一眼就知道問題出現在哪裏,然後跟他講了好多IIC的東西,唉,有些代碼可能會誤導那些對IIC協議不太懂的同學。


像stm32的硬件IIC是比較特別的,所以基本上都是用軟件的IIC。什麼是軟件的IIC:軟件控制IO的電平,模仿出IIC的時序圖。在這個過程中需要軟件去控制電平。

當時如果是硬件IIC的話,就不需要軟件去控制電平了,芯片自己會幫我們做了。


IIC協議:如果有不懂的話,請自己先GOOGLE下,花幾分鐘去詳細瞭解它。哥哥在這裏就介紹重點。


IIC分成主機和從機,從機都需要一個地址,這個地址是7BIT的,假設

設備地址是 0b1100 111  ------7bit                                    -------在CC3200的IIC中,我們只關心這個

主機向從機發送數據時的地址是   0b1100 1110  -----8bit    -------在CC3200的IIC中,我們不關心這個

從機向主機發送數據時的地址是   0b1100 1111   -----8bit   -------在CC3200的IIC中,我們不關心這個

地址的最低bit是用來標識數據的傳輸方向,所以當我們用軟件的IIC,這個bit是需要我們去控制的。


如果我們是用軟件的IIC,一般給出的就是    寫地址==0b1010 1110   和     讀地址== 0b1100 1111  ,8bit總比7bit看的順眼吧.

如果是硬件的IIC,地址就是 0b1100 111 ,至於是寫或者是讀,都是由CC3200幫我們做了。所以我們給CC3200的設備地址是7bit。




發佈了44 篇原創文章 · 獲贊 13 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章