找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

仿真用stm32f1读取dht11数据,一直监测不到dht11是怎么回事啊?求助

查看数: 6479 | 评论数: 11 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
899
发布时间: 2022-3-31 14:40

正文摘要:

问题如标题,代码编译,仿真运行都没有问题,LED灯一直闪烁表示代码一直在运行 请大佬们解惑万分感谢 在proteus仿真图如下 dht11代码: #include "dht11.h" #include "delay.h"   &n ...

回复

ID:951660 发表于 2024-6-22 17:19
899 发表于 2022-4-1 14:01
感谢,解决了

大佬,怎么解决的
ID:503018 发表于 2024-4-24 19:37

主函数第21行
运行DHT11_Init()之前要先运行DHT11_Rst()
单独运行DHT11_Init()会永远超时返回1
ID:1053252 发表于 2024-4-20 22:06
大佬,怎么解决的,我的问题和你的一样。
ID:1043901 发表于 2022-9-5 15:41
899 发表于 2022-4-1 14:01
感谢,解决了

怎样解决的,我也是一直检测不到设备,用了很多人的代码都不行,也换了元件,应该不是硬件问题
ID:597761 发表于 2022-4-1 14:01
lkc8210 发表于 2022-4-1 09:49
OLED 显示了"DHT11 INIT.."代表初化成功

你看看DHT11的总线0/1的表达时间线

感谢,解决了
ID:161164 发表于 2022-4-1 09:59
示波器再接一根Debug脚(如PC12)
在dht11代码的53行之前加一句:
PC12 = !PC12;//Debug脚输出取反,这是51的写法,STM32的没学过

在示波器看看Debug脚电平变化时STM在读什么电平
ID:161164 发表于 2022-4-1 09:49
899 发表于 2022-3-31 21:03
感谢回答,直接运行DHT11_Rst()串口没有初始化,时钟没打开会报错,问题好像是使用的系统滴答systick时钟 ...

OLED 显示了"DHT11 INIT.."代表初化成功

你看看DHT11的总线0/1的表达时间线

再把DHT11的DATA脚接上示波器
对比一下波形
ID:96682 发表于 2022-4-1 06:46
除了代码,传感器上拉电阻取值不恰当也可能是个问题
ID:161164 发表于 2022-3-31 17:06
主函数第21行
运行DHT11_Init()之前要先运行DHT11_Rst()
单独运行DHT11_Init()会永远超时返回1
ID:597761 发表于 2022-3-31 14:42
主函数代码
  1. #include "stm32f10x.h"
  2. #include "delay.h"
  3. #include "oled.h"
  4. #include "led.h"
  5. #include "dht11.h"

  6. int main(void) {
  7.   
  8.         u8 t=0;                            
  9.         u8 temperature;              
  10.         u8 humidity;  
  11.        
  12.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
  13.        
  14.         delay_init();
  15.         LED_Init();
  16.        
  17.         OLED_Init();
  18.         OLED_ShowString(0,0,"OLED INIT..",12);
  19.        
  20.         if(DHT11_Init())        //DHT113õê¼»ˉ       
  21.         {
  22.                 OLED_ShowString(0,12,"DHT11 ERROR",12);
  23.                 delay_ms(200);
  24.         }        else {
  25.                 OLED_ShowString(0,12,"DHT11 INIT..",12);
  26.                 delay_ms(200);
  27.         }
  28.         OLED_ShowString(0,24,"Run...",12);
  29.         OLED_Refresh_Gram();
  30.        
  31.         while(1) {
  32.                 if(t%10==0)               
  33.                 {
  34.                         if(!DHT11_Read_Data(&temperature,&humidity))               
  35.                         {
  36.                                 OLED_ShowChar(0,36,temperature,12,1);
  37.                                 OLED_ShowChar(0,48,humidity,12,1);           
  38.                         }        else {
  39.                                 OLED_ShowString(0,36,"READ DATE ERROR",12);
  40.                         }
  41.                         OLED_Refresh_Gram(); //¸üDÂÏÔê¾μ½OLEDÖD
  42.                        
  43.                 }
  44.                 delay_ms(10);
  45.                 t++;
  46.                 if(t==20)
  47.                 {
  48.                         t=0;
  49.                         LED0=!LED0;
  50.                 }
  51.         };
  52. }
复制代码

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表