打印

DHT11例程中的小问题

[复制链接]
275|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
张さん|  楼主 | 2018-7-16 09:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天在看 DHT11数字温湿度传感器实验 视频时,发现例程中存在一点问题。见下边函数:

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;                  
}

上边箭头处标出的程序是有问题的地方,这个函数中并未像DHT11_Check(那样在跳出循环后对retry的值进行判断和进一步处理(视频中讲到此处时也觉得顿了一下,之后绕过去了)。更加健壮的程序应为:
if(retry>=100)
    return 0xFF;
下边的while循环下边的语句也要如此判断。

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

448

主题

464

帖子

1

粉丝