STM32103读取 DHT11时 对 DHT11_Read_Bit 的理解
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 的理解相关推荐
- STM8单片机读取DHT11温湿度传感器
DHT11是一款温湿度传感器,也是使用一根总线来驱动,使用方法和ds18b20温度传感器很类似. 供电电压 3.3~5.5V DC 测量范围 湿度5% ~ 95%RH, 温度-20℃ ~ +60℃ 测 ...
- 树莓派+PHP+Mairadb数据库读取DHT11
1.在 /var/www/html新建DHT11.py,将以下程序复制到里面保存. # -*- coding: utf-8 -*- import RPi.GPIO as GPIO # 引入GPIO模块 ...
- 模板引擎不关心内容之——art-template,碰见的同步与fs.readFile异步以及函数回调问题的描述,针对fs的readfille读取文件时,返回不了异步函数返回值的解决方法
模板引擎不关心内容 art-template art-template不仅可以在浏览器使用,也可以在node中使用 npm install art-template该命令在哪执行就会把包下载在哪里,默 ...
- STC15W4K系列单片机读取DHT11温湿度数据发送到串口
为了方便大家调试,点击进入程序下载地址 已经配置好了UART1和UART3两个串口,直接在main函数中改写 PrintString1("湿度:"); PrintS ...
- c语言fread无法存储,【求助】C语言fread读取二进制文件时,读取结果全都是零
C语言fread读取二进制文件时,读取结果全都是零,编译运行都没问题,但是就是结果显示不对,猜想可能有几个原因: 1. 大小端没处理好,设置了程序判断机器为little endian,但是,身为小白的 ...
- pandas使用read_csv函数读取文件时指定数据列的数据类型、pandas使用read_csv函数读取文件时通过keep_default_na参数设置缺失值替换为空字符串
pandas使用read_csv函数读取文件时指定数据列的数据类型.pandas使用read_csv函数读取文件时通过keep_default_na参数设置缺失值替换为空字符串 目录
- c语言fread读取错误,【求助】C语言fread读取二进制文件时,读取结果全都是零
C语言fread读取二进制文件时,读取结果全都是零,编译运行都没问题,但是就是结果显示不对,猜想可能有几个原因: 1. 大小端没处理好,设置了程序判断机器为little endian,但是,身为小白的 ...
- Scattering:将数据写入到buffer时,可以采用buffer数组,依次写入 [分散] || Gathering: 从buffer读取数据时,可以采用buffer数组,依次读
package com.atguigu.nio;import java.net.InetSocketAddress; import java.nio.ByteBuffer; import java.n ...
- 解决 pandas 读取数据时内存过大的问题
解决 pandas 读取数据时内存过大的问题 背景: 在我们使用pandas进行数据处理的时候,有时候发现文件在本地明明不大,但是用pandas以DataFrame形式加载内存中的时候会占用非常高的内 ...
最新文章
- Apache主配置文件httpd.conf 详解
- git reset和git revert
- 5-global_data介绍
- 关于[__NSCFArray removeObjectAtIndex:]: mutating method sent to immutable object的报错分析
- C++ 包含目录、库目录、附加依赖项详解
- WSO2 WSF/CPP 网络服务开发例子1--HELLO
- AOJ0028 Mode Value【出现次数最多+map+vector+水题】
- three 查看版本号
- 【每日算法Day 74】经典面试题:约瑟夫环,我敢打赌你一定不会最后一种方法!...
- Mac MySQL重置Root密码
- 应用进展_解释的标准事件:第2部分–应用和进展
- 笔记(一)Home Assistant简介
- ubuntu18.04 eclipse +sdcc开发stm8l152 并且单步调试
- uilabel 自行撑开高度_textarea高度随内容自适应增高撑开
- 什么命令用于撤销mysql用户的权限_下列命令中,___命令用于撤销MySQL用户对象权限。...
- 程序员初学者如何自学编程
- 侍魂无限跳服务器,经典游戏《真侍魂》橘右京的无限残像,对手就这么活活的被挡死了...
- Gamma Correction(伽马校正)
- 双相障碍快速循环发作的治疗:证据回顾 | 文献述评
- 西门子PLC能否实时无线采集多处从站模拟量数据?