关于dht11的程序问题

2019-03-23 18:27发布

//等待DHT11的回应
//返回1:未检测到DHT11的存在
//返回0:存在
u8 DHT11_Check(void)           
{   
        u8 retry=0;
        DHT11_IO_IN();//SET INPUT         
    while (DHT11_DQ_IN&&retry<120)//DHT11会拉低80us
        {
                retry++;
                delay_us(1);
        };         
        if(retry>=120)return 1;
        else retry=0;
       
    while (!DHT11_DQ_IN&&retry<120)//DHT11拉低后会再次拉高80us
        {
                retry++;
                delay_us(1);
        };
        if(retry>=120)return 1;            
        return 0;
}

总感觉这两句while (DHT11_DQ_IN&&retry<100)与while (!DHT11_DQ_IN&&retry<100) 要换一下,哪位高手给解释一下,谢谢

此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。