找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4955|回復(fù): 2
收起左側(cè)

DHT22在STM32上的源程序 iar工程

[復(fù)制鏈接]
ID:286128 發(fā)表于 2018-2-27 22:36 | 顯示全部樓層 |閱讀模式
對于DHT22相對與DHT11相比,雖然價(jià)格較貴,但它擁有更高的精度,在工業(yè)場合更為合適,本程序由眾想科技劉洋師傅的DHT11代碼為基礎(chǔ)進(jìn)行編寫而成,主要差別在于系統(tǒng)的初始化,以及溫濕度計(jì)算的方法與DHT11有所差別。
PS:下面的程序是DHT讀取數(shù)據(jù)的部分。在軟件校驗(yàn)的時(shí)候,有的時(shí)候校驗(yàn)可能有問題,導(dǎo)致暫時(shí)不能顯示溫度和濕度,目前原因未知。測試下來如果出問題,一般在2分鐘左右會(huì)恢復(fù)正常,并開始讀取實(shí)時(shí)溫度和濕度,若有發(fā)現(xiàn)問題的朋友歡迎隨時(shí)討論,謝謝

stm32源碼如下:

  1. u8 DHT22_Read_Data(float *sd,float *wd)
  2. {
  3.         u8 buf[5];
  4.         u8 i;
  5.         u16 wdtemp,sdtemp;
  6.         DHT22_RST();

  7.         if(DHT22_Check()==0)
  8.         {
  9.            for(i=0;i<5;i++)
  10.            {
  11.                      buf[i]=DHT22_Read_Byte();
  12.                
  13.                 }

  14.            if((buf[0]+buf[1]+buf[2]+buf[3])==buf[4])
  15.            {
  16.                          sdtemp = buf[0];
  17.                          sdtemp = (sdtemp<<8)|buf[1];
  18.                          wdtemp = buf[2];
  19.                          wdtemp = (wdtemp<<8)|buf[3];
  20.                     *sd=sdtemp/10.0;
  21.                    *wd=wdtemp/10.0;
  22.                   return 0;
  23.            }
  24.            else
  25.            {
  26.                      return 1;
  27.            }
  28.         }
  29.         else
  30.         {
  31.                 return 1;
  32.         }
  33. }
復(fù)制代碼

Keil代碼下載::
DHT22.7z (184.06 KB, 下載次數(shù): 129)



評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評分

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

ID:390928 發(fā)表于 2018-12-18 08:37 | 顯示全部樓層
這個(gè)程序好用嗎
回復(fù)

使用道具 舉報(bào)

ID:508737 發(fā)表于 2019-4-10 14:54 | 顯示全部樓層
請問您的程序里面 E4是接信號(hào)線, 那e5呢?
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表