|
對于DHT22相對與DHT11相比,雖然價格較貴,但它擁有更高的精度,在工業(yè)場合更為合適,本程序由眾想科技劉洋師傅的DHT11代碼為基礎(chǔ)進(jìn)行編寫而成,主要差別在于系統(tǒng)的初始化,以及溫濕度計算的方法與DHT11有所差別。
PS:下面的程序是DHT讀取數(shù)據(jù)的部分。在軟件校驗的時候,有的時候校驗可能有問題,導(dǎo)致暫時不能顯示溫度和濕度,目前原因未知。測試下來如果出問題,一般在2分鐘左右會恢復(fù)正常,并開始讀取實時溫度和濕度,若有發(fā)現(xiàn)問題的朋友歡迎隨時討論,謝謝
stm32源碼如下:
- u8 DHT22_Read_Data(float *sd,float *wd)
- {
- u8 buf[5];
- u8 i;
- u16 wdtemp,sdtemp;
- DHT22_RST();
- if(DHT22_Check()==0)
- {
- for(i=0;i<5;i++)
- {
- buf[i]=DHT22_Read_Byte();
-
- }
- if((buf[0]+buf[1]+buf[2]+buf[3])==buf[4])
- {
- sdtemp = buf[0];
- sdtemp = (sdtemp<<8)|buf[1];
- wdtemp = buf[2];
- wdtemp = (wdtemp<<8)|buf[3];
- *sd=sdtemp/10.0;
- *wd=wdtemp/10.0;
- return 0;
- }
- else
- {
- return 1;
- }
- }
- else
- {
- return 1;
- }
- }
復(fù)制代碼
Keil代碼下載::
DHT22.7z
(184.06 KB, 下載次數(shù): 129)
2021-12-6 04:03 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|
評分
-
查看全部評分
|