溫濕度感測器採集

2021-10-12 16:27:13 字數 1878 閱讀 9056

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

軟體i2c:一般是使用gpio管腳,用軟體控制scl,sda線輸出高低電平,模擬i2c協議的時序。

主要**:

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");

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");

}

(4)結果顯示:

(1)實驗環境:

硬體:主控晶元:stm32f103rct6

usb轉串列埠

野火mini stm32開發板

軟體:arduino ide 1.8.12

(2)**編寫

void

setup()

int flag=1;

//串列埠傳送標誌位,1表示傳送,0表示停止傳送

void

loop()

stopsenddata()

;}void

stopsenddata()

if(receivedata==stopflag)

//判斷接收到的資料是否為停止傳送資料的訊號

再執行**看看

1、2、

溫濕度感測器採集

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

溫濕度感測器採集

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

溫濕度感測器採集

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