DHT11 数字温湿度传感器试验的一些问题

2019-08-11 18:55发布

 //等待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吗?
请各位大神帮忙解答下我的疑惑啊.
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
正点原子
1楼-- · 2019-08-11 19:25
 精彩回答 2  元偷偷看……
老虎的菜
2楼-- · 2019-08-12 00:28
回复【2楼】正点原子:
---------------------------------
同求这个问题啊 原子哥。注释里写着DHT11会拉低40~80us 可是代码
while (DHT11_DQ_IN&&retry<100)//DHT11会拉低40~80us
{
retry++;
delay_us(1);
}
这句话的意思不是DHT11高电平40~80us吗,你说的等待DQ拉低的意思是在40~80us后,DQ为低电平?也就是下面那句话才是DQ为40us~80us的低电平?
正点原子
3楼-- · 2019-08-12 05:39
回复【3楼】老虎的菜:
---------------------------------
这里就是等待拉低!!!
WHILE1就死等,等到WHILE0
924583269
4楼-- · 2019-08-12 08:17
正点原子 发表于 2014-10-21 23:18
回复【3楼】老虎的菜:
---------------------------------
这里就是等待拉低!!!
WHILE1就死等,等到WHIL ...

原子哥,while (DHT11_DQ_IN&&retry<100)//DHT11中,只要DHT11_DQ_IN为低电平就跳出循环,也可能在10us或者20us的时候就跳出了,这样的话DHT11算是响应了么?
zhanminlove
5楼-- · 2019-08-12 14:05
跳出第一次while 循环后会到第二个while循环  等待再次拉高

一周热门 更多>