基於I2C的溫濕度採集

2021-10-12 16:31:22 字數 1545 閱讀 9785

實驗要求

一、解釋「軟體i2c」和「硬體i2c」

二、程式設計實現溫濕度採集

(三)結果

學習i2c匯流排通訊協議,完成基於i2c硬體協議的aht20溫濕度感測器的資料採集,並將採集的溫度-濕度值通過串列埠輸出。具體任務:

1)解釋什麼是「軟體i2c」和「硬體i2c」? (閱讀野火配套教材的第23章「i2c–讀寫eeprom」原理章節)

iic(inter-integrated circuit)其實是iicbus簡稱,所以中文應該叫積體電路匯流排,它是一種序列通訊匯流排,使用多主從架構,速率較低。

iic就是i2c正確讀法為「i平方c」

其有兩個物理介面分別為scl和sda

scl(serical clock): 時鐘線,傳輸clk訊號,一般是i2c主裝置向從裝置提供時鐘的通道,

sda(serical data): 通訊資料都通過sda線傳輸,

一般是用gpio管腳,用軟體控制管腳狀態以模擬i2c通訊波形。

一般對應晶元上的i2c外設,有相應i2c驅動電路,其所使用的i2c管腳也是專用的。

軟體i2c 是通過gpio,軟體模擬暫存器的工作方式而硬體i2c是直接呼叫內部暫存器進行配置,效率要遠高於軟體的,而軟體i2c由於不受管腳限制,介面比較靈活。因為硬體i2c的埠是固定的,所以會有所區別。

#include

"stm32f10x.h"

#include

"bsp_usart.h"

#include

"delay.h"

#include

"bsp_aht20.h"

#include

"bsp_led.h"

intmain

(void);

volatile

float hum=

0,temp=0;

usart_config()

;//usart1初始化

led_gpio_config()

;//led埠初始化

delay_init()

;//延時函式初始化

temphum_init()

;//初始化溫濕度感測器

while(1

)}

1、先將aht20晶元與引腳焊接起來

2、將焊接好的ath20與stm32指南針開發板用杜邦線連線起來,如下圖

aht20晶元背面有引腳解釋,按照這個和stm32開發板的i2c板塊原理圖對應連線

4、燒錄成功後,開啟串列埠除錯工具讀取結果

基於I2C的溫濕度採集

二 aht20溫濕度感測器的資料採集 實驗要求 學習i2c匯流排通訊協議,完成基於i2c硬體協議的aht20溫濕度感測器的資料採集,並將採集的溫度 濕度值通過串列埠輸出。具體任務 1 解釋什麼是 軟體i2c 和 硬體i2c 閱讀野火配套教材的第4章 i2c 讀寫eeprom 原理章節 i2c 通訊協...

基於IIC實現溫濕度採集

2 aht20溫濕度感測器 3 實現溫濕度採集 4 總結 iic inter integrated circuit 其實是iicbus簡稱,所以中文應該叫積體電路匯流排,它是一種序列通訊匯流排,使用多主從架構,速率較低。iic就是i2c正確讀法為 i平方c 其有兩個物理介面分別為scl和sda sc...

基於STM32,AHT20溫濕度採集

總結學習i2c匯流排通訊協議,完成基於i2c硬體協議的aht20溫濕度感測器的資料採集,並將採集的溫度 濕度值通過串列埠輸出。具體任務 1 解釋什麼是 軟體i2c 和 硬體i2c 閱讀野火配套教材的第23章 i2c 讀寫eeprom 原理章節 2 閱讀aht20資料手冊,程式設計實現 每隔2秒鐘採集...