dht11实验问题

2019-10-14 21:11发布

u8 DHT11_Check(void)           
{   
        u8 retry=0;
        DHT11_IO_IN();//SET INPUT         
    while (DHT11_DQ_IN&&retry<100)//DHT11会拉低40~80us
        {
                retry++;
                delay_us(1);
        };         
        if(retry>=100)return 1;
        else retry=0;
    while (!DHT11_DQ_IN&&retry<100)//DHT11拉低后会再次拉高40~80us
        {
                retry++;
                delay_us(1);
        };
        if(retry>=100)return 1;            
        return 0;
}


想问一下这里的 while (DHT11_DQ_IN&&retry<100)只是用于检测有没有低电平的到来吧,应该没有办法来计算这里的低电平的延时时间在40—-80us之间吧?
同时  while (!DHT11_DQ_IN&&retry<100)这里如果有低电平进入这个循环,可是挡高电平时间如果比40us小的话有该肿么办呢?

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