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]

如图 如图

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。