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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5531|回復: 10
打印 上一主題 下一主題
收起左側

DHT11模塊stm32f103c8t6程序

  [復制鏈接]
跳轉到指定樓層
樓主
ID:462603 發表于 2019-1-5 17:58 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
DHT11模塊stm32f103c8t6單片機驅動

源程序如下:
  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. //復位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);             //主機拉高20~40us
  19. }

  20. //等待DHT11的回應
  21. //返回1:未檢測到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會拉低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拉低后會再次拉高40~80us
  35.         {
  36.                 retry++;
  37.                 Delay_us(1);
  38.         };
  39.         if(retry>=100)return 1;            
  40.         return 0;
  41. }

  42. //從DHT11讀取一個位
  43. //返回值:1/0
  44. u8 DHT11_Read_Bit(void)                          
  45. {
  46.         u8 retry=0;
  47.         while(DHT11_DQ_IN&&retry<100)//等待變為低電平
  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讀取一個字節
  63. //返回值:讀到的數據
  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讀取一次數據
  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位數據
  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 同時檢測DHT11的存在
  100. //返回1:不存在
  101. //返回0:存在             
  102. u8 DHT11_Init(void)
  103. {         
  104.         GPIO_InitTypeDef  GPIO_InitStructure;       
  105.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);         //使能PG端口時鐘
  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();  //復位DHT11
  113.         return DHT11_Check();//等待DHT11的回應
  114. }
復制代碼

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


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:462698 發表于 2019-1-5 20:39 | 只看該作者
很好,正好需要
回復

使用道具 舉報

板凳
ID:82928 發表于 2019-3-8 19:38 | 只看該作者
現在還看不太懂,努力努力努力
回復

使用道具 舉報

地板
ID:508794 發表于 2019-4-19 14:28 | 只看該作者
謝謝分享
回復

使用道具 舉報

5#
ID:219729 發表于 2019-4-19 23:18 | 只看該作者
敢問樓主使用的什么LCD?
回復

使用道具 舉報

6#
ID:479851 發表于 2019-4-21 06:09 | 只看該作者
這個 行不行啊
回復

使用道具 舉報

7#
ID:524448 發表于 2019-4-29 21:41 | 只看該作者
好用嗎
回復

使用道具 舉報

8#
ID:477889 發表于 2019-5-17 20:48 | 只看該作者
為什么dht11初始化失敗啊
回復

使用道具 舉報

9#
ID:309115 發表于 2019-7-6 15:05 | 只看該作者
謝謝樓主
回復

使用道具 舉報

10#
ID:421308 發表于 2019-7-12 09:26 | 只看該作者
這個只能是PA11口
回復

使用道具 舉報

11#
ID:421308 發表于 2019-7-12 09:27 | 只看該作者
寄存器寫死了,怎么改啊,有誰知道嗎???
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品永久免费观看 | 亚洲成人黄色 | 日韩视频福利 | 精品国产一区二区国模嫣然 | 高清黄色| 欧美性受 | 色综合色综合色综合 | 欧美日韩专区 | 日本精品一区二区三区在线观看视频 | 在线欧美小视频 | 国产一级视屏 | 综合国产第二页 | 国产片侵犯亲女视频播放 | 午夜激情影院 | 一级a爱片性色毛片免费 | 日韩欧美国产一区二区三区 | 久久久久高清 | 91.com在线观看| 韩国精品在线观看 | 亚洲一区导航 | 欧美一区二区三区,视频 | 欧美黑人巨大videos精品 | 在线国产中文字幕 | 青青草原精品99久久精品66 | av黄色在线观看 | 成人av观看| 久久国产亚洲 | 日本特黄a级高清免费大片 成年人黄色小视频 | 成人夜晚看av | 欧美色性| 天天干人人 | 在线播放亚洲 | 欧美网站一区 | 亚洲成人综合在线 | 免费亚洲成人 | 日日碰狠狠躁久久躁婷婷 | 国产高潮好爽受不了了夜夜做 | 午夜影院在线观看 | 95国产精品 | 中文字幕在线观看视频网站 | 少妇无套高潮一二三区 |