DHT11输出全为低电平

2019-10-15 23:14发布

我用mini板的PA0口作DHT11数据线,DHT11相关程序全部照抄的战舰DHT11例程,然后用PRINTF将结果输出到串口用串口调试助手查看。结果全为0,然后我用DHT11_Read_Bit()函数查看,发现接收到的每一个bit都是0,对DHT11呼气,所有的bit都为1  .修改判断0或1的delay函数,发现几乎所有Bit都在21us样子的时候变为0,请问一下这个是什么原因啊? 跪求大神帮我解答一下嘛

[mw_shl_code=c,true]#include "stm32f10x.h"
#include "delay.h"
#include "DHT11.h"
#include "led.h"
#include "usart.h"

u8 t=0;
u8 temp,humi;
int main(void)
{
        u8 i;
        //NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
        uart_init(115200);
        delay_init();
        DHT11_Init();
        led_init();
        //temp=1;
        while(DHT11_Init())
        {
                printf("ERROR ");
        }
        while(1)
        {
               
//                DHT11_IO_OUT();
//                DHT11_DQ_OUT=1;
//                DHT11_Reset();
//                DHT11_Check();
//                //printf("on");
                //printf("%d",GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0));
                //if(t%10==0)
               
                        //DHT11_Read_Data(&temp,&humi);
                        DHT11_Reset();
                        if(DHT11_Check()==0)
                        {
                        DHT11_Read_Bit();
                                printf("R%d  ",DHT11_Read_Bit());
                        //        printf("%d ",DHT11_Read_Bit());
                        //delay_ms(20);
                        }
                        //printf("%d",DHT11_Read_Data(&temp,&humi));
                        //t=0;
               
//                delay_ms(20);
               
        }
}[/mw_shl_code]

如图 如图

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
oywjex
1楼-- · 2019-10-16 21:22
zhp 发表于 2016-12-22 17:48
先把DATA口加上拉电阻,然后根据楼上的方法判断是否能输出高低电平状态,是否能够读取高低电平状态

但是我直接用READ_DATA函数就正确的读取了温度和湿度的具体数字呢?为什么读每一个位会出问题呢?
feilusia
2楼-- · 2019-10-16 21:37
参考我个性签名档的博客地址,《CC2541之DHT11温湿度采集》。
zhp
3楼-- · 2019-10-17 02:41
 精彩回答 2  元偷偷看……
oywjex
4楼-- · 2019-10-17 03:56
feilusia 发表于 2016-12-23 09:16
参考我个性签名档的博客地址,《CC2541之DHT11温湿度采集》。

你好,我后来是做出来了,但是我想每读一位数据就输出出来如我的程序那样,请问一下为什么输出的全是0或者全是1呢?
oywjex
5楼-- · 2019-10-17 09:29
zhp 发表于 2016-12-23 10:09
上拉就是将不确定的信号通过一个电阻嵌位在高电平!电阻同时起限流作用!下拉同理!上拉是对器件注入电流 ...

我知道了,我现在特别不懂的是 为什么我读整个数据都是对的,但是我想输出每一位数据却不正确呢

一周热门 更多>