STM32103读取 DHT11时 对 DHT11_Read_Bit() 的理解

DHT11的时序是:
原子的库函数DHT11里面,关于读取bit的函数有40us的延时不是很理解,依据DHT11的数据对时间的要求,读取2个连续的0bit时有可能出错,于是修改了延时时间发现30us 到60us都可以正常显示,尤其是60us已经超出了0bit的高低电平的时间之和40us,为什么还能显示能,于是到DHT11官网查询到了V1.3版本的数据手册,才明白原因。原来我的板子上配置的DHT11是V1.3版本的,也就是如上图所示的时序,于是0bit高低电平的时间和是70us,所以就出现了延时60us还能显示的现象。为了兼容这两种不同的DHT11,延时时间修改为35us感觉更合适,目前测试也正常。
下面函数代码:

//从DHT11读取一个位
//返回值:1/0
// 该函数接在 DHT11_Check()之后的,即(DHT11_Check())函数还有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(35);//等待40us
if(DHT11_DQ_IN)return 1;
else return 0;
}

STM32103读取 DHT11时 对 DHT11_Read_Bit 的理解相关推荐

  1. STM8单片机读取DHT11温湿度传感器

    DHT11是一款温湿度传感器,也是使用一根总线来驱动,使用方法和ds18b20温度传感器很类似. 供电电压 3.3~5.5V DC 测量范围 湿度5% ~ 95%RH, 温度-20℃ ~ +60℃ 测 ...

  2. 树莓派+PHP+Mairadb数据库读取DHT11

    1.在 /var/www/html新建DHT11.py,将以下程序复制到里面保存. # -*- coding: utf-8 -*- import RPi.GPIO as GPIO # 引入GPIO模块 ...

  3. 模板引擎不关心内容之——art-template,碰见的同步与fs.readFile异步以及函数回调问题的描述,针对fs的readfille读取文件时,返回不了异步函数返回值的解决方法

    模板引擎不关心内容 art-template art-template不仅可以在浏览器使用,也可以在node中使用 npm install art-template该命令在哪执行就会把包下载在哪里,默 ...

  4. STC15W4K系列单片机读取DHT11温湿度数据发送到串口

    为了方便大家调试,点击进入程序下载地址 已经配置好了UART1和UART3两个串口,直接在main函数中改写     PrintString1("湿度:");     PrintS ...

  5. c语言fread无法存储,【求助】C语言fread读取二进制文件时,读取结果全都是零

    C语言fread读取二进制文件时,读取结果全都是零,编译运行都没问题,但是就是结果显示不对,猜想可能有几个原因: 1. 大小端没处理好,设置了程序判断机器为little endian,但是,身为小白的 ...

  6. pandas使用read_csv函数读取文件时指定数据列的数据类型、pandas使用read_csv函数读取文件时通过keep_default_na参数设置缺失值替换为空字符串

    pandas使用read_csv函数读取文件时指定数据列的数据类型.pandas使用read_csv函数读取文件时通过keep_default_na参数设置缺失值替换为空字符串 目录

  7. c语言fread读取错误,【求助】C语言fread读取二进制文件时,读取结果全都是零

    C语言fread读取二进制文件时,读取结果全都是零,编译运行都没问题,但是就是结果显示不对,猜想可能有几个原因: 1. 大小端没处理好,设置了程序判断机器为little endian,但是,身为小白的 ...

  8. Scattering:将数据写入到buffer时,可以采用buffer数组,依次写入 [分散] || Gathering: 从buffer读取数据时,可以采用buffer数组,依次读

    package com.atguigu.nio;import java.net.InetSocketAddress; import java.nio.ByteBuffer; import java.n ...

  9. 解决 pandas 读取数据时内存过大的问题

    解决 pandas 读取数据时内存过大的问题 背景: 在我们使用pandas进行数据处理的时候,有时候发现文件在本地明明不大,但是用pandas以DataFrame形式加载内存中的时候会占用非常高的内 ...

最新文章

  1. Apache主配置文件httpd.conf 详解
  2. git reset和git revert
  3. 5-global_data介绍
  4. 关于[__NSCFArray removeObjectAtIndex:]: mutating method sent to immutable object的报错分析
  5. C++ 包含目录、库目录、附加依赖项详解
  6. WSO2 WSF/CPP 网络服务开发例子1--HELLO
  7. AOJ0028 Mode Value【出现次数最多+map+vector+水题】
  8. three 查看版本号
  9. 【每日算法Day 74】经典面试题:约瑟夫环,我敢打赌你一定不会最后一种方法!...
  10. Mac MySQL重置Root密码
  11. 应用进展_解释的标准事件:第2部分–应用和进展
  12. 笔记(一)Home Assistant简介
  13. ubuntu18.04 eclipse +sdcc开发stm8l152 并且单步调试
  14. uilabel 自行撑开高度_textarea高度随内容自适应增高撑开
  15. 什么命令用于撤销mysql用户的权限_下列命令中,___命令用于撤销MySQL用户对象权限。...
  16. 程序员初学者如何自学编程
  17. 侍魂无限跳服务器,经典游戏《真侍魂》橘右京的无限残像,对手就这么活活的被挡死了...
  18. Gamma Correction(伽马校正)
  19. 双相障碍快速循环发作的治疗:证据回顾 | 文献述评
  20. 西门子PLC能否实时无线采集多处从站模拟量数据?

热门文章

  1. 智慧养老解决方案配合服务守护老人
  2. 互联网研究系列之拼多多 附下载地址
  3. JavaScript常用数组API(2)
  4. 量化投资从0开始系列 ---- 12. 上期所日统计数据
  5. OpenCasCade数学库 - 包围盒(Bnd_Box)的变换(Transformed)
  6. 深度学习——特征点检测和目标检测
  7. MybatisPlu自动生成CRUD接口(二)
  8. Kotlin - Map 字典
  9. 解决“只能通过Chrome网上应用商店安装该程序”的方法
  10. 【工具】Mac实时显示键盘按键软件