溫濕度感測器採集

2021-10-12 16:33:26 字數 2751 閱讀 9933

1、什麼是i2c協議

i2c 通訊協議(inter-integrated circuit)是由 phiilps 公司開發的,由於它引腳少,硬體實現簡單,可擴充套件性強,不需要 usart、can 等通訊協議的外部收發裝置,現在被廣泛地使用在系統內多個積體電路(ic)間的通訊。

2、i2c 協議的物理層和協議層

①物理層

i2c是乙個支援裝置的匯流排。可連線多個 i2c 通訊裝置,支援多個通訊主機及多個通訊從機。對於i2c 匯流排,只使用兩條匯流排線路,一條雙向序列資料線(sda) ,一條序列時鐘線(scl)。

i2c 通訊裝置常用連線方式(引用野火資料中的圖)

②協議層

主要是定義了通訊的起始和停止訊號、資料有效性、響應、仲裁、時鐘同步和位址廣播等。

從圖中可以看出i2c在通訊的時候,只有在scl處於高電平時,sda的資料傳輸才是有效的。sda 訊號線是用於傳輸資料,scl 訊號線是保證資料同步。

響應

當sda傳輸資料後,接收方對接受到的資料進行乙個應答。如果希望繼續進行傳輸資料,則回應應答訊號(低電平),否則回應非應答訊號(高電平)。

3、i2c的兩種方式——硬體i2c和軟體i2c

①硬體i2c

直接利用 stm32 晶元中的硬體 i2c 外設。

硬體i2c的使用 只要配置好對應的暫存器,外設就會產生標準串列埠協議的時序。在初始化好 i2c 外設後,只需要把某暫存器位置

1,此時外設就會控制對應的 scl 及 sda 線自動產生 i2c 起始訊號,不需要核心直接控制引腳的電平。

②軟體i2c

直接使用 cpu 核心按照 i2c 協議的要求控制 gpio 輸出高低電平,從而模擬i2c。

軟體i2c的使用 需要在控制產生 i2c 的起始訊號時,控制作為 scl 線的 gpio 引腳輸出高電平,然後控制作為 sda 線的

gpio 引腳在此期間完成由高電平至低電平的切換,最後再控制scl 線切換為低電平,這樣就輸出了乙個標準的 i2c 起始訊號。

③兩者的差別

硬體 i2c 直接使用外設來控制引腳,可以減輕 cpu 的負擔。不過使用硬體i2c 時必須使用某些固定的引腳作為 scl 和 sda,軟體模擬 i2c 則可以使用任意 gpio 引腳,相對比較靈活。對於硬體i2c用法比較複雜,軟體i2c的流程更清楚一些。如果要詳細了解i2c的協議,使用軟體i2c可能更好的理解這個過程。在使用i2c過程,硬體i2c可能通訊更加快,更加穩定。

主要**的分析

①aht20晶元的使用過程

void

read_aht20_once

(void

)

②aht20晶元讀取資料

void

read_aht20

(void

)i2c_start()

;//i2c啟動

i2c_writebyte

(0x71);

//i2c寫資料

ack_status =

receive_ack()

;//收到的應答資訊

readbyte[0]

=i2c_readbyte()

;//i2c讀取資料

send_ack()

;//傳送應答資訊

readbyte[1]

=i2c_readbyte()

;send_ack()

; readbyte[2]

=i2c_readbyte()

;send_ack()

; readbyte[3]

=i2c_readbyte()

;send_ack()

; readbyte[4]

=i2c_readbyte()

;send_ack()

; readbyte[5]

=i2c_readbyte()

;sendnot_ack()

;//send_ack();

i2c_stop()

;//i2c停止函式

//判斷讀取到的第乙個位元組是不是0x08,0x08是該晶元讀取流程中規定的,如果讀取過程沒有問題,就對讀到的資料進行相應的處理if(

(readbyte[0]

&0x68)==

0x08

)else

printf

("\r\n");

//根據aht20晶元中,溫度和濕度的計算公式,得到最終的結果,通過串列埠顯示

printf

("溫度:%d%d.%d"

,t1/

100,

(t1/10)

%10,t1%10)

;printf

("濕度:%d%d.%d"

,h1/

100,

(h1/10)

%10,h1%10)

;printf

("\r\n");

}

溫濕度感測器採集

軟體 keil firetool助手 硬體 stm32核心板,溫濕度感測器,st link燒錄器,ttl轉usb模組 首先保證程式編譯通過,電腦連線stm32核心板 核心板連線溫濕度感測器 st link燒錄器 ttl轉usb模組 預設電腦已安裝st link驅動 設定keil相關引數,參考 最後燒...

溫濕度感測器採集

硬體i2c 對應晶元上的i2c外設,有相應的i2c驅動電路,其所使用的i2c管腳也是專用的,因而效率要遠高於軟體模擬的i2c 一般也較為穩定,但是程式較為繁瑣。硬體i2c是直接呼叫內部暫存器進行配置 而軟體i2c是沒有暫存器這個概念的。軟體i2c 一般是使用gpio管腳,用軟體控制scl,sda線輸...

溫濕度感測器採集

解釋什麼是 軟體i2c 和 硬體i2c i2c通訊協議是由philips 公司開發的一種簡單 雙向二線制同步序列匯流排協議,它只需要兩根線即可連線於匯流排上的器件之間傳送資訊。i2c的兩種方式 硬體i2c和軟體i2c 硬體i2c 直接利用 stm32 晶元中的硬體 i2c 外設。硬體i2c的使用 只...