DHT11 求代码分析,一直没绕懂

2019-07-20 20:05发布

u8 DHT11_Check(void)           
{   
        u8 retry=0;
        DHT11_IO_IN();         
    while (DHT11_DQ_IN&&retry<100)
                retry++;
                delay_us(1);
        };         
        if(retry>=100)return 1;
        else retry=0;
    while (!DHT11_DQ_IN&&retry<100)
        {
                retry++;
                delay_us(1);
        };
        if(retry>=100)return 1;            
        return 0;
}


u8 DHT11_Read_Bit(void)                          
{
        u8 retry=0;
        while(DHT11_DQ_IN&&retry<100)
        {
                retry++;
                delay_us(1);
        }
        retry=0;
        while(!DHT11_DQ_IN&&retry<100)
        {
                retry++;
                delay_us(1);
        }
        delay_us(40);
        if(DHT11_DQ_IN)return 1;
        else return 0;       
}          
响应check的时序图 响应check的时序图
这两段代码是怎样体现出时序的啊?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
往事随风
1楼-- · 2019-07-20 22:52
STM33 发表于 2016-9-9 17:41
只能告诉你,这个代码充分体现了了单总线时序

有点绕,后来看懂了,大神有没有更简洁的代码啊?
STM33
2楼-- · 2019-07-21 04:33
 精彩回答 2  元偷偷看……
正点原子
3楼-- · 2019-07-21 06:19
往事随风 发表于 2016-9-13 09:26
有点绕,后来看懂了,大神有没有更简洁的代码啊?

你可以自行精简。

一周热门 更多>