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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

關于STM32F103ZET6系統板上連接DHT11一直卡在初始化監測不到DHT11讀不出數據的問題

[復制鏈接]
跳轉到指定樓層
樓主
本帖最后由 899 于 2022-4-7 11:01 編輯

請各位大佬幫忙看看問題出在哪里,一直卡在dht11的初始化,就是主函數main.c的
while(DHT11_Init()) {
printf("\r\n DHT11 init error");
delay_ms(50);
}


開發板為 STM32F103ZET6
傳感器 DHT11 3線
接線正確 電源線接5v 3.3v都嘗試過 數據線接的為PG11

使用的例程為正點原子的DHT11代碼  代碼如下

dht11.c代碼為:
  1. #include "dht11.h"
  2. #include "delay.h"
復制代碼
dht11.h
  1. #ifndef __DHT11_H
  2. #define __DHT11_H
  3. #include "sys.h"
  4. #define DHT11_IO_IN()  {GPIOG->CRH&=0XFFFF0FFF;GPIOG->CRH|=8<<12;}
  5. #define DHT11_IO_OUT() {GPIOG->CRH&=0XFFFF0FFF;GPIOG->CRH|=3<<12;}
  6. #define        DHT11_DQ_OUT PGout(11)
  7. #define        DHT11_DQ_IN  PGin(11)

  8. u8 DHT11_Init(void);//3õê¼»ˉDHT11
  9. u8 DHT11_Read_Data(u8 *temp,u8 *humi);
  10. u8 DHT11_Read_Byte(void);
  11. u8 DHT11_Read_Bit(void);
  12. u8 DHT11_Check(void);
  13. void DHT11_Rst(void);
  14. #endif
復制代碼

main.c
  1. #include"stm32f10x.h"
  2. #include "delay.h"
  3. #include "usart.h"        
  4. #include "led.h"
  5. #include "dht11.h"
  6. int main(void)
  7. {
  8.         u8 temperature,humidity;
  9.         delay_init();
  10.         uart_init(115200);
  11.         LED_Init();
  12.         printf("\r\n system init");
  13.         
  14.         while(DHT11_Init()) {
  15.                 printf("\r\n DHT11 init error");
  16.                 delay_ms(50);
  17.         }
  18.         printf("DHT11 init\n");
  19.         
  20.         while(1) {
  21.                 if(!DHT11_Read_Data(&temperature,&humidity)) {
  22.                         printf("\r\n t: %d ,h: %d",temperature,humidity);
  23.                 }else printf("READ ERROR");
  24.                 LED0=!LED0;
  25.                 delay_ms(300);
  26.         }
  27. }
復制代碼





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

使用道具 舉報

沙發
ID:597761 發表于 2022-4-7 11:03 | 只看該作者
dht11.c代碼被吞,如下
  1. void DHT11_Rst(void)          
  2. {                 
  3.         DHT11_IO_OUT();         //SET OUTPUT
  4.     DHT11_DQ_OUT=0;         //à-μíDQ
  5.     delay_ms(20);            //à-μíÖáéù18ms
  6.     DHT11_DQ_OUT=1;         //DQ=1
  7.         delay_us(30);             //Ö÷»úà-¸ß20~40us
  8. }

  9. u8 DHT11_Check(void)           
  10. {   
  11.         u8 retry=0;
  12.         DHT11_IO_IN();//SET INPUT         
  13.     while (!DHT11_DQ_IN&&retry<100)//DHT11»áà-μí40~80us
  14.         {
  15.                 retry++;
  16.                 delay_us(1);
  17.         };         
  18.         if(retry>=100)return 1;
  19.         else retry=0;
  20.     while (DHT11_DQ_IN&&retry<100)//DHT11à-μíoó»áÔù′Îà-¸ß40~80us
  21.         {
  22.                 retry++;
  23.                 delay_us(1);
  24.         };
  25.         if(retry>=100)return 1;            
  26.         return 0;
  27. }

  28. u8 DHT11_Read_Bit(void)                          
  29. {
  30.         u8 retry=0;
  31.         while(DHT11_DQ_IN&&retry<100)//μè′y±äÎaμíμçÆ½
  32.         {
  33.                 retry++;
  34.                 delay_us(1);
  35.         }
  36.         retry=0;
  37.         while(!DHT11_DQ_IN&&retry<100)//μè′y±ä¸ßμçÆ½
  38.         {
  39.                 retry++;
  40.                 delay_us(1);
  41.         }
  42.         delay_us(40);//μè′y40us
  43.         if(DHT11_DQ_IN)return 1;
  44.         else return 0;                  
  45. }

  46. u8 DHT11_Read_Byte(void)   
  47. {        
  48.     u8 i,dat;
  49.     dat=0;
  50.         for (i=0;i<8;i++)
  51.         {
  52.                    dat<<=1;
  53.             dat|=DHT11_Read_Bit();
  54.     }                                                    
  55.     return dat;
  56. }

  57. u8 DHT11_Read_Data(u8 *temp,u8 *humi)   
  58. {        
  59.         u8 buf[5];
  60.         u8 i;
  61.         DHT11_Rst();
  62.         if(DHT11_Check()==0)
  63.         {
  64.                 for(i=0;i<5;i++)//¶áè¡40λêy¾Y
  65.                 {
  66.                         buf[i]=DHT11_Read_Byte();
  67.                 }
  68.                 if((buf[0]+buf[1]+buf[2]+buf[3])==buf[4])
  69.                 {
  70.                         *humi=buf[0];
  71.                         *temp=buf[2];
  72.                 }
  73.         } else return 1;
  74.         return 0;   
  75. }
  76.          
  77. u8 DHT11_Init(void)
  78. {         
  79.         GPIO_InitTypeDef  GPIO_InitStructure;
  80.        
  81.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOG, ENABLE);         //ê1ÄüPG¶Ë¿úê±Öó
  82.        
  83.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;                                 //PG11¶Ë¿úÅäÖÃ
  84.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;                  //íÆíìêä3ö
  85.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  86.         GPIO_Init(GPIOG, &GPIO_InitStructure);                                 //3õê¼»ˉIO¿ú
  87.         GPIO_SetBits(GPIOG,GPIO_Pin_11);                                                 //PG11 êä3ö¸ß
  88.                             
  89.         DHT11_Rst();  //¸′λDHT11
  90.         return DHT11_Check();//μè′yDHT11μÄ»Øó|
  91. }
復制代碼

回復

使用道具 舉報

板凳
ID:732794 發表于 2022-4-7 20:04 | 只看該作者
驅動DHT11的IO配置是不是有問題?一般是開漏吧?然后這個腳再加個4.7K上拉電阻
回復

使用道具 舉報

地板
ID:950943 發表于 2022-6-7 20:53 | 只看該作者
同樣的問題
回復

使用道具 舉報

5#
ID:329625 發表于 2022-6-8 19:55 | 只看該作者
你可以檢查一下是不是模塊的問題,一般dht11的程序是通用的
回復

使用道具 舉報

6#
ID:463392 發表于 2023-6-11 16:32 | 只看該作者

解決了嗎?
回復

使用道具 舉報

7#
ID:1083538 發表于 2023-6-12 13:46 | 只看該作者
你換一個dht11試試
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产一区二区在线免费观看 | 亚洲高清av在线 | 久久久久一区 | 四虎在线观看 | 免费在线h视频 | 欧美影院久久 | 隔壁老王国产在线精品 | 久久成人高清视频 | 日韩在线一区二区三区 | 在线视频国产一区 | 五月婷婷色 | 亚洲图片视频一区 | 中文字幕精品一区二区三区精品 | 亚洲国产欧美日韩 | av成年人网站 | 久久精品一 | 日韩一区二区三区av | 久久中文字幕电影 | 国产精品国产亚洲精品看不卡15 | 国产精品一区二区无线 | 在线观看久草 | 国产色| 一级一级一级毛片 | 精品欧美一区二区三区久久久小说 | 久久99精品久久久久蜜桃tv | 日韩一级黄色毛片 | 成人国产精品久久久 | 日韩精品一区二区三区中文字幕 | 二区三区在线观看 | 一区欧美| 日韩精品免费一区 | av在线免费观看网址 | 欧洲精品一区 | 国产成人综合亚洲欧美94在线 | 色噜噜狠狠色综合中国 | 一区视频在线 | 久久国产成人 | 毛片在线看片 | 国产精品99久久久久久宅男 | 日韩欧美国产精品一区 | 中文字幕在线人 |