新手入门
- 积分
- 8
- 金钱
- 8
- 注册时间
- 2023-2-3
- 在线时间
- 2 小时
|
今天在看 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的值进行判断和进一步处理(视频中讲到此处时也觉得顿了一下,之后绕过去了),如果一直是高电平的话超过100us应该是DHT11应答失败,但是按程序中运行的话会返回1,求解答 |
|