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

標題: DHT11模塊stm32f103c8t6程序 [打印本頁]

作者: h2196436348    時間: 2019-1-5 17:58
標題: DHT11模塊stm32f103c8t6程序
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)



作者: afenge    時間: 2019-1-5 20:39
很好,正好需要
作者: luzxin    時間: 2019-3-8 19:38
現在還看不太懂,努力努力努力
作者: 菜鳥一枚666    時間: 2019-4-19 14:28
謝謝分享
作者: koko5    時間: 2019-4-19 23:18
敢問樓主使用的什么LCD?
作者: 143914885    時間: 2019-4-21 06:09
這個 行不行啊
作者: gcgg    時間: 2019-4-29 21:41
好用嗎
作者: floatingnumber    時間: 2019-5-17 20:48
為什么dht11初始化失敗啊
作者: linouba    時間: 2019-7-6 15:05
謝謝樓主
作者: xiaozhong1314    時間: 2019-7-12 09:26
這個只能是PA11口

作者: xiaozhong1314    時間: 2019-7-12 09:27
寄存器寫死了,怎么改啊,有誰知道嗎???




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 中文字幕亚洲精品 | 亚洲永久字幕 | 亚洲一区二区三区高清 | av片免费 | 国产综合久久久 | 精品久久久久久亚洲综合网 | 大象一区| 在线精品亚洲欧美日韩国产 | 精品国产一区二区三区性色av | 在线精品亚洲欧美日韩国产 | www.天天操.com | 熟女毛片| 欧美精品在线观看 | 亚洲传媒在线 | 日韩在线播放中文字幕 | 精品国产乱码久久久久久蜜柚 | 国产日韩欧美一区 | 久久精品国产免费一区二区三区 | 亚洲色图综合 | 久久久网 | 一级网站| 日韩精品一区在线观看 | 久久综合成人精品亚洲另类欧美 | 综合精品| 三级在线观看 | 国产成人99久久亚洲综合精品 | 粉嫩av久久一区二区三区 | 成人免费视频网站在线看 | 欧美精品久久久 | 成人av在线播放 | 在线色 | 在线欧美 | 99久久久久 | 黄色精品| 99久久久无码国产精品 | 免费色网址 | 日韩视频区 | 国产一区二区三区精品久久久 | 亚洲 成人 av | 日韩免费1区二区电影 | 欧美日韩第一页 |