久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

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

DHT11模塊stm32f103c8t6程序

  [復(fù)制鏈接]
ID:462603 發(fā)表于 2019-1-5 17:58 | 顯示全部樓層 |閱讀模式
DHT11模塊stm32f103c8t6單片機(jī)驅(qū)動(dòng)

源程序如下:
  1. /***************STM32F103C8T6**********************
  2. * 文件名  :DHT11.c
  3. * 描述    :DHT11傳感器
  4. * 備注    : DHT11溫度濕度傳感器
  5. * 接口    :PA11-DATA

  6. ********************LIGEN*************************/

  7. #include "dht11.h"
  8. #include "delay.h"

  9. #define DT GPIO_Pin_11
  10.       
  11. //復(fù)位DHT11
  12. void DHT11_Rst(void)          
  13. {                 
  14.         DHT11_IO_OUT();         //SET OUTPUT
  15.         DHT11_DQ_OUT=0;         //拉低DQ
  16.         Delay_ms(20);            //拉低至少18ms
  17.         DHT11_DQ_OUT=1;         //DQ=1
  18.         Delay_us(30);             //主機(jī)拉高20~40us
  19. }

  20. //等待DHT11的回應(yīng)
  21. //返回1:未檢測(cè)到DHT11的存在
  22. //返回0:存在
  23. u8 DHT11_Check(void)           
  24. {   
  25.         u8 retry=0;
  26.         DHT11_IO_IN();//SET INPUT         
  27.     while (DHT11_DQ_IN&&retry<100)//DHT11會(huì)拉低40~80us
  28.         {
  29.                 retry++;
  30.                 Delay_us(1);
  31.         };         
  32.         if(retry>=100)return 1;
  33.         else retry=0;
  34.     while (!DHT11_DQ_IN&&retry<100)//DHT11拉低后會(huì)再次拉高40~80us
  35.         {
  36.                 retry++;
  37.                 Delay_us(1);
  38.         };
  39.         if(retry>=100)return 1;            
  40.         return 0;
  41. }

  42. //從DHT11讀取一個(gè)位
  43. //返回值:1/0
  44. u8 DHT11_Read_Bit(void)                          
  45. {
  46.         u8 retry=0;
  47.         while(DHT11_DQ_IN&&retry<100)//等待變?yōu)榈碗娖?br />
  48.         {
  49.                 retry++;
  50.                 Delay_us(1);
  51.         }
  52.         retry=0;
  53.         while(!DHT11_DQ_IN&&retry<100)//等待變高電平
  54.         {
  55.                 retry++;
  56.                 Delay_us(1);
  57.         }
  58.         Delay_us(40);//等待40us
  59.         if(DHT11_DQ_IN)return 1;
  60.         else return 0;                  
  61. }

  62. //從DHT11讀取一個(gè)字節(jié)
  63. //返回值:讀到的數(shù)據(jù)
  64. u8 DHT11_Read_Byte(void)   
  65. {        
  66.         u8 i,dat;
  67.         dat=0;
  68.         for (i=0;i<8;i++)
  69.         {
  70.                 dat<<=1;
  71.                 dat|=DHT11_Read_Bit();
  72.         }                                                    
  73.         return dat;
  74. }

  75. //從DHT11讀取一次數(shù)據(jù)
  76. //temp:溫度值(范圍:0~50°)
  77. //humi:濕度值(范圍:20%~90%)
  78. //返回值:0,正常;1,讀取失敗
  79. u8 DHT11_Read_Data(u8 *temp,u8 *humi)   
  80. {        
  81.         u8 buf[5];
  82.         u8 i;
  83.         DHT11_Rst();
  84.         if(DHT11_Check()==0)
  85.         {
  86.                 for(i=0;i<5;i++)//讀取40位數(shù)據(jù)
  87.                 {
  88.                         buf[i]=DHT11_Read_Byte();
  89.                 }
  90.                 if((buf[0]+buf[1]+buf[2]+buf[3])==buf[4])
  91.                 {
  92.                         *humi=buf[0];
  93.                         *temp=buf[2];
  94.                 }
  95.         }
  96.         else return 1;
  97.         return 0;            
  98. }

  99. //初始化DHT11的IO口 DQ 同時(shí)檢測(cè)DHT11的存在
  100. //返回1:不存在
  101. //返回0:存在             
  102. u8 DHT11_Init(void)
  103. {         
  104.         GPIO_InitTypeDef  GPIO_InitStructure;       
  105.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);         //使能PG端口時(shí)鐘
  106.         GPIO_InitStructure.GPIO_Pin = DT;                                 //PG11端口配置
  107.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;                  //推挽輸出
  108.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  109.         GPIO_Init(GPIOA, &GPIO_InitStructure);                                 //初始化IO口
  110.         GPIO_SetBits(GPIOA,DT);                                                 //PG11 輸出高
  111.                             
  112.         DHT11_Rst();  //復(fù)位DHT11
  113.         return DHT11_Check();//等待DHT11的回應(yīng)
  114. }
復(fù)制代碼

所有資料51hei提供下載:
DHT11溫濕度檢測(cè).zip (285.43 KB, 下載次數(shù): 223)

評(píng)分

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

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:462698 發(fā)表于 2019-1-5 20:39 | 顯示全部樓層
很好,正好需要
回復(fù)

使用道具 舉報(bào)

ID:82928 發(fā)表于 2019-3-8 19:38 | 顯示全部樓層
現(xiàn)在還看不太懂,努力努力努力
回復(fù)

使用道具 舉報(bào)

ID:508794 發(fā)表于 2019-4-19 14:28 | 顯示全部樓層
謝謝分享
回復(fù)

使用道具 舉報(bào)

ID:219729 發(fā)表于 2019-4-19 23:18 | 顯示全部樓層
敢問(wèn)樓主使用的什么LCD?
回復(fù)

使用道具 舉報(bào)

ID:479851 發(fā)表于 2019-4-21 06:09 | 顯示全部樓層
這個(gè) 行不行啊
回復(fù)

使用道具 舉報(bào)

ID:524448 發(fā)表于 2019-4-29 21:41 | 顯示全部樓層
好用嗎
回復(fù)

使用道具 舉報(bào)

ID:477889 發(fā)表于 2019-5-17 20:48 | 顯示全部樓層
為什么dht11初始化失敗啊
回復(fù)

使用道具 舉報(bào)

ID:309115 發(fā)表于 2019-7-6 15:05 | 顯示全部樓層
謝謝樓主
回復(fù)

使用道具 舉報(bào)

ID:421308 發(fā)表于 2019-7-12 09:26 | 顯示全部樓層
這個(gè)只能是PA11口
回復(fù)

使用道具 舉報(bào)

ID:421308 發(fā)表于 2019-7-12 09:27 | 顯示全部樓層
寄存器寫(xiě)死了,怎么改啊,有誰(shuí)知道嗎???
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品视频免费观看 | 青青草在线播放 | 国产激情一区二区三区 | 视频一区二区中文字幕日韩 | 国产精品99久久久久久久久 | 欧美一级淫片免费视频黄 | 久草新在线 | 日本超碰 | 99久久久无码国产精品 | 精品一二区 | 欧美在线色视频 | 国产一区二区三区在线看 | 欧美日韩成人在线 | 波多野结衣av中文字幕 | 一区二区三区小视频 | 国产黄色小视频在线观看 | 国产婷婷色综合av蜜臀av | 久久久久国产精品一区二区 | 香蕉视频在线播放 | 久久久久久久久久性 | 亚洲精品一区二区三区中文字幕 | 九九导航 | 欧美精品免费观看二区 | 一级做a| 午夜私人影院在线观看 | 人人天天操 | 一级黄色毛片免费 | 亚洲人成人一区二区在线观看 | 天天干天天爽 | 99久久精品国产毛片 | 欧美a在线 | 国产精品久久久久久久毛片 | 亚洲精品性视频 | 亚洲精品一区在线 | 国产一级免费视频 | 欧美日韩一区二区三区四区 | av天天看 | 日韩av电影院 | 精品国产欧美一区二区 | 国产一级片在线观看视频 | 国产日韩精品久久 |