OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2237|回复: 1

DHT11驱动Check函数的问题

[复制链接]

2

主题

4

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2018-2-9
在线时间
3 小时
发表于 2018-2-13 23:32:46 | 显示全部楼层 |阅读模式
1金钱
u8 DHT11_Check(void)     
{   
u8 retry=0;
DHT11_IO_IN();//SET INPUT  
    while (DHT11_DQ_IN&&retry<100)
{
  retry++;
  delay_us(1);
};  
if(retry>=100)return 1;    //这里不应该是if(retry>=80)retrurn 1;吗???
else retry=0;
    while (!DHT11_DQ_IN&&retry<100)
{
  retry++;
  delay_us(1);
};
if(retry>=100)return 1;        //这里不应该是if(retry>=80)retrurn 1;吗???
return 0;
}

DHT11要拉低40到50us,然后拉高40到50us。为什么例程测的是100us呢???

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

11

主题

55

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
328
金钱
328
注册时间
2017-9-10
在线时间
80 小时
发表于 2018-2-14 10:37:31 | 显示全部楼层
我不知道是不是我的模块问题,好像按照这种检测方式,如果你按复位键,你会发现有时候即使你插上了模块,也会检测到模块不存在,可是为什么之后又会存在,是因为函数放在了while循环里,我觉的这个检测函数是有问题的。但是我不清楚是不是我的模块有问题,要开学后去学校换个模块试试。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 07:20

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表