STM32學習之SHT20溫濕度感測器

2021-10-04 03:59:37 字數 1814 閱讀 7087

sht20, 新一代 sensirion 濕度和溫度感測器在尺寸與智慧型方面建立了新的標準:它嵌入了適於回流焊的雙列扁平無引腳 dfn 封裝, 底面 3 x3mm ,高度 1.1mm。感測器輸出經過標定的數碼訊號,標準 i 2 c 格式。sht20 配有乙個全新設計的 cmosens®晶元、乙個經過改進的電容式濕度感測元件和乙個標準的能隙溫度感測元件,其效能已經大大提公升甚至超出了前一代傳器(sht1x 和 sht7x)的可靠性水平。例如,新一代濕度感測器,已經經過改進使其在高濕環境下的效能更穩定。每乙個感測器都經過校準和測試。在產品表面印有產品批號,同時在晶元內儲存了電子識別碼-可以通過輸入命令讀出這些識別碼。此外,sht20的解析度可以通過輸入命令進行改變(8/12bit乃至12/14bit的 rh/t),感測器可以檢測到電池低電量狀態,並且輸出校驗和,有助於提高通訊的可靠性。由於對感測器做了改良和微型化改進,因此它的價效比更高-並且最終所有裝置都將得益於尖端的節能執行模式。可以使用乙個新的測試包 ek-h4 對sht20進行測試。

溫度

相對濕度

相信來看本帖的同學對sht20有一定的了解,所以這裡直奔主題,關於sht20的具體說明可看文末的中、英文資料手冊和例程。

sht20採用的i2c通訊,基本命令如下表:

其中主機通訊的時序如圖

首先傳送寫位址,再傳送命令,然後是讀位址,隨後等待測量即可,測量時間如下圖,感測器內部設定的預設解析度為相對濕度 12位和溫度 14位。45傳送nack時可取消校驗。

下面是讀取資料的**,0x40是主機位址,先傳送寫命令,然後寫入觸發測量命令,再寫入讀命令,準備接收資料,資料一共三位元組,依次是資料高位元組、低位元組、校驗位元組。

sht20_address  =

0x40

;u16 sht20_get_data

(u8 cmd)

else data =

(125.0

* data /

65536

-6.0)*

10;//濕度計算公式

return data;

}else

return

0xffff

;//校驗不通過返回0xffff

}

sht20採用的是crc8校驗、模型為x8 + x5 +x4 +1,即crc_model = 0x131。

crc校驗的**如下

#define crc_model 0x131

u8 crc_check

(u8 *ptr, u8 len, u8 checksum)

else

crc =

(crc <<1)

;}}if

(checksum == crc)

else

return1;

}

STM32F405 標準庫 SHT20溫濕度感測器

sht20是個溫濕度感測器,使用i2c通訊 下面的i2c程式需要換成你們自己的i2c程式 softreset函式 硬體初始化 set resolution函式 設定解析度 readsht20函式 開始測量 在main.c主函式裡面這樣呼叫 if softreset 0 while 1 sht20.c...

STM32學習之 stm32中C語言的資料型別

stm32 c語言資料型別 在程式設計過程中,不同的cpu,其資料型別的意義各不相同,所以一定要注意相應變數資料型別的定義和轉換,否則在計算中可能會出現不確定的錯誤。一 c語言中的種類資料 整型 int short long 實型 float double stm32中的資料型別非常的多,常用的變數...

STM32學習之USART串列埠

通用同步非同步收發器 usart 支援lin 區域性互連網 智慧卡協議和irda 紅外資料組織 sir endec規範,以及數據機 cts rts 操作 允許多處理器通訊 使用多緩衝器配置的dma方式,可以實現高速資料通訊。stm32f107有5個usart。usart暫存器 狀態暫存器 usart...