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小的话有该肿么办呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
那是不是就不用判断低电平过后的高电平时间范围了吗?可以这样理解吧?
一周热门 更多>