//等待DHT11的响应
//返回1:未检出到DHT11的存在
//返回0:存在
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)//这一句是DHT11拉低40~80us吗?
我看说明书上的时序图不因该是
while ((DHT11_DQ_IN==0)&&retry<100)才是拉低40~80us吗?
请各位大神帮忙解答下我的疑惑啊.
原子哥,while (DHT11_DQ_IN&&retry<100)//DHT11中,只要DHT11_DQ_IN为低电平就跳出循环,也可能在10us或者20us的时候就跳出了,这样的话DHT11算是响应了么?
一周热门 更多>