OpenEdv-开源电子网

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

关于DHT11数字温湿度传感器的代码疑惑

[复制链接]

2

主题

8

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2015-6-9
在线时间
1 小时
发表于 2015-12-25 10:58:45 | 显示全部楼层 |阅读模式
5金钱
[mw_shl_code=c,true]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[/mw_shl_code] [mw_shl_code=c,true]{ retry++; delay_us(1); }; if(retry>=100)return 1;     return 0; } [/mw_shl_code]

这段代码的第一个while的意思是等待低电平的40us吧?
可是假如它是低电平的话那while里面的逻辑就一直是0啊,第一次就会跳出循环,所以我觉得是不是与下面的代码弄反了?
因为我没买那个传感器的硬件,就只看了看代码的逻辑,看到这部分的时候就有点疑惑,请原子哥帮忙解答一下~

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

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2015-6-28
在线时间
1 小时
发表于 2015-12-25 11:29:46 | 显示全部楼层
没错的,初始化的时候拉高了。
回复

使用道具 举报

2

主题

8

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2015-6-9
在线时间
1 小时
 楼主| 发表于 2015-12-25 12:36:52 | 显示全部楼层
回复【2楼】dragon2610:
---------------------------------
初始化的时候是拉高了,但是到了响应的时候是先低电平再高电平,所以这第一个while应该是判断40~80us低电平的啊,可是如果是低电平的话while就跳出来了
回复

使用道具 举报

2

主题

8

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2015-6-9
在线时间
1 小时
 楼主| 发表于 2015-12-25 12:38:00 | 显示全部楼层
@正点原子    不知道有效果没
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-12-26 20:48:58 | 显示全部楼层
船长23 发表于 2015-12-25 12:38
@正点原子&nbsp;&nbsp;&nbsp;&nbsp;不知道有效果没

按你的思路,改代码,看能否用?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

2

主题

8

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2015-6-9
在线时间
1 小时
 楼主| 发表于 2015-12-28 09:19:58 | 显示全部楼层
正点原子 发表于 2015-12-26 20:48
按你的思路,改代码,看能否用?

我没有那个硬件。。所以没法测试
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-22 06:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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