OpenEdv-开源电子网

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

dht11实验问题

[复制链接]

12

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
75
金钱
75
注册时间
2016-11-7
在线时间
39 小时
发表于 2017-3-3 11:43:08 | 显示全部楼层 |阅读模式
20金钱
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
        {
                retry++;
                delay_us(1);
        };
        if(retry>=100)return 1;            
        return 0;
}


想问一下这里的 while (DHT11_DQ_IN&&retry<100)只是用于检测有没有低电平的到来吧,应该没有办法来计算这里的低电平的延时时间在40—-80us之间吧?
同时  while (!DHT11_DQ_IN&&retry<100)这里如果有低电平进入这个循环,可是挡高电平时间如果比40us小的话有该肿么办呢?

最佳答案

查看完整内容[请看2#楼]

第一个是等待低电平的到来,并不判断低电平有多长。第二个是等到高电平的到来,并不判断高电平有多长。 但是他们之间的关系,就是你说的这个时间范围。这里的等待时间,也就在这个范围内。 实际上这里就是等待一次拉低和变高
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165537
金钱
165537
注册时间
2010-12-1
在线时间
2117 小时
发表于 2017-3-3 11:43:09 | 显示全部楼层
第一个是等待低电平的到来,并不判断低电平有多长。第二个是等到高电平的到来,并不判断高电平有多长。  但是他们之间的关系,就是你说的这个时间范围。这里的等待时间,也就在这个范围内。 实际上这里就是等待一次拉低和变高
回复

使用道具 举报

0

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
75
金钱
75
注册时间
2017-1-17
在线时间
8 小时
发表于 2017-3-3 16:13:35 | 显示全部楼层
DHT11说是40~80us的数据能够采集到,但是时间不一定准确,因为你运行代码的时候,每条语句都占用时间,我将DHT11改为am2320   按照历程上说也是40~80Us,但是通过打印看出只有30us   只要数据正常  大一点  或者小一点都没问题,程序上只是说大部分都在40~80
回复

使用道具 举报

0

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
75
金钱
75
注册时间
2017-1-17
在线时间
8 小时
发表于 2017-3-3 16:14:02 | 显示全部楼层
你的目的只是收取正常数据就行了
回复

使用道具 举报

12

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
75
金钱
75
注册时间
2016-11-7
在线时间
39 小时
 楼主| 发表于 2017-3-3 16:25:41 | 显示全部楼层
wangzx 发表于 2017-3-3 16:14
你的目的只是收取正常数据就行了

谢谢您的回答,可是检测应答程序好像是在收到高电平的时候就认为是有效应答了干嘛还要标注拉高40-80us呢?
回复

使用道具 举报

0

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
75
金钱
75
注册时间
2017-1-17
在线时间
8 小时
发表于 2017-3-3 16:33:14 | 显示全部楼层
其实你说错了    因为有上拉电阻  输出口的电平会随之升高  其实有低电平信号  才是正常的应答信号
回复

使用道具 举报

8

主题

145

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
462
金钱
462
注册时间
2016-12-14
在线时间
75 小时
发表于 2017-3-3 16:33:34 | 显示全部楼层
帮顶。。。。。。
书山有路勤为径,学海无涯苦作舟!
回复

使用道具 举报

12

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
75
金钱
75
注册时间
2016-11-7
在线时间
39 小时
 楼主| 发表于 2017-3-3 16:48:44 | 显示全部楼层
wangzx 发表于 2017-3-3 16:33
其实你说错了    因为有上拉电阻  输出口的电平会随之升高  其实有低电平信号  才是正常的应答信号

那是不是就不用判断低电平过后的高电平时间范围了吗?可以这样理解吧?
回复

使用道具 举报

0

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
75
金钱
75
注册时间
2017-1-17
在线时间
8 小时
发表于 2017-3-4 22:06:13 | 显示全部楼层
应该是    但是逻辑还是必须得有  你可以看看示波器
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-15 06:17

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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