完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
stm32获取DHT11模块温湿度数据原理解析
stm32单片机如何从DHT11获取到温湿度的呢? 首先可以通过DHT11手册了解一下DHT11模块,掌握该温湿度模块的通讯过程 简单分析stm32与模块建立通讯的过程:通过高低电平的持续时间和切换来控制模块开始采集和传输数据。 首先了解如何控制该模块,分析时序图: 假设连接该模块的引脚为A,那么与模块建立通讯需按照一下步骤: 1.A为输出模式并且输出低电平持续大于等于18ms(根据图中主机至少拉低18ms) 2.A输出高电平持续20-40μs(图示主机拉高20-40μs) 3.A改变为输入模式并且接收到DHT响应信号80μs(图中DHT响应信号80μs) 4.A接收到高电平持续80μs,为DHT11发送的响应信号(图中DHT拉高80μs) 与DHT11模块建立通讯完成。 接下来主要解析如何接收DHT11温湿度模块返回的温湿度数据 阅读DTH11手册得知,该模块温湿度数据传输为40bit,高位先出,传输格式如下: 8bit湿度整数数据+8bit湿度小数数据 +8bi温度整数数据+8bit温度小数数据 +8bit校验和 那么如何传输这40bit的数据呢? 建立通讯后,模块进入高速模式,并且触发一次数据采集,送出40bit的数据 40bit数据以二进制的形式通过波形传播 该模块会返回两种波形,一种波形代表数字 0 ,另一种代表数字 1 ,一共返回 40 个波形,每个波形代表一位二进制数( 0 或 1 ),每 8 个波形为一组,一共五组,每一组组成一个 8 位的二进制数分别代表湿度整数部分、小数部分 和 温度整数部分、小数部分,最后是校验和。 接下来看下返回的两种波形 图一,表示数字 0,图二表示数字 1 ,如下图所示 图一: 图二: 对原理有一定的了解之后 就可以根据温湿度模块输出的波形进行解码得到温湿度数据 初始化配置代码就不一一列出了 主要编写的是如何对模块返回的波形进行解码,最后得到温湿度数据 经过引脚的高低电平和输入输出模式转换后 模块返回波形,以下为解码波形的核心代码(仅适用于理解) 假设PG9引脚与该模块连接,完成通讯后处于输入模式 ui uint8_t p[5]; //定义一个数组用于存储温湿度数据 uint32_t t=0; //定义变量t用于超时处理的时间计算 int32_t i=0,j=0; //定义变量 i j 用于逻辑预算 uint8_t d=0; //定义变量 d 用于波形转二进制数的解码运算 uint8_t check_sum=0;//用于数据检验 //接收五个字节 for(j=0; j<5; j++) { d=0; //每个字节由八位二进制数字组成 for(i=7; i>=0; i--) { //测量低电平持续的时间,添加超时处理 t=0; while(PGin(9)==0) { t++; delay_us(1); //需编写延时函数,延时100μs if(t >=100) { return -1; } } //延时40us delay_us(40); //判断是否由高电平产生 if(PGin(9)) { d|=1< //测量高电平持续的时间,添加超时处理 t=0; while(PGin(9)) { t++; delay_us(1); if(t >=100) { return -2; } } } } p[j]=d; } //延时100us,通信结束 delay_us(100); //进行数据校验 check_sum=p[0]+p[1]+p[2]+p[3]; |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1771 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1619 浏览 1 评论
1070 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
724 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1673 浏览 2 评论
1935浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
728浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
568浏览 3评论
593浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
551浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 15:52 , Processed in 0.731489 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号