STM32模块篇-温湿度传感器模块(DHT11)实验_第1页
STM32模块篇-温湿度传感器模块(DHT11)实验_第2页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 STM32模块篇-温湿度传感器模块(DHT11)实验录5.03.1 概述35.03.1.1 性能描述45.03.1.2 传感器时序45.03.2 实验的65.03.3 硬件设计75.03.4 软件设计75.03.4.1 软件设计说明85.03.4.2 STM32库函数件85.03.4.3 定义头件85.03.4.4 pbdata.h件的内容是95.03.4.5 pbdata.c件的内容是95.03.5 STM32系统时钟配置SystemInit()125.03.6 GPIO引脚时钟使能125.03.7 GPIO管脚电平控制函数125.03.8 stm32f10 x_it.c件的内容是135.

2、03.9 dht11.h件的内容是135.03.10 dht11.c件的内容是145.03.11 main.c件的内容是175.03.12 程序下载195.03.13 实验效果图205.03 温湿度传感器模块实验5.03.1 概述DHT11 数字温湿度传感器是款含有已校准数字信号输出的温湿度复合传感器。它应专的数字模块采集技术和温湿度传感技术,确保产品具有极的可靠性与卓越的长期稳定性。传感器包括个电阻式感湿元件和个NTC测温元件,并与个性能8 位单机相连接。因此该产品具有品质卓越、超快响应、抗扰能强、性价极等优点。每个DHT11 传感器都在极为精确的湿度校验室中进校准。校准系数以程序的形式储存

3、在OTP 内存中,传感器内部在检测信号的处理过程中要调这些校准系数。单线制串接,使系统集成变得简易快捷。超的体积、极低的功耗,信号传输距离可达20 以上,使其成为各类应甚最为苛刻的应场合的最佳选则。DHT11 数字温湿度传感器模块为4 针PH2.0 封装。连接便。如右图所。5.03.1.1 性能描述1 供电电压:3-5.5V2 供电电流:最2.5mA3 温度范围:0-50 误差24 湿度范围:20-90%RH 误差5%RH5 响应时间: 1/e(63%) 6-30s 6 测量分辨率分别为 8bit(温度)、8bit(湿度)7 采样周期间隔不得低于1 秒钟8 模块尺:30 x20mm注释:建议连

4、接线长度短于20时使5K上拉电阻,于20时根据实际情况使合适的上拉电阻。5.03.1.2 传感器时序DATA 于微处理器与 DHT11之间的通讯和同步,采单总线数据格式,次通讯时间4ms左右,数据分数部分和整数部分,具体格式在下说明,当前数部分于以后扩展,现读出为零.操作流程如下:次完整的数据传输为40bit,位先出。数据格式:8bit湿度整数数据+8bit湿度数数据+8bi温度整数数据+8bit温度数数据+8bit校验和数据传送正确时校验和数据等于“8bit湿度整数数据+8bit湿度数数据+8bi温度整数数据+8bit温度数数据”所得结果的末8位。户MCU发送次开始信号后,DHT11从低功耗

5、模式转换到速模式,等待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发次信号采集,户可选择读取部分数据.从模式下,DHT11接收到开始信号触发次温湿度采集,如果没有接收到主机发送开始信号,DHT11不会主动进温湿度采集.采集数据后转换到低速模式。通讯过程如图总线空闲状态为电平,主机把总线拉低等待DHT11响应,主机把总线拉低必须于18毫秒,保证DHT11能检测到起始信号。DHT11接收到主机的开始信号后,等待主机开始信号结束,然后发送80us低电平响应信号.主机发送开始信号结束后,延时等待20-40us后, 读取DHT11的响应信号,主机发送开始信号后,可以切换到输模式

6、,或者输出电平均可, 总线由上拉电阻拉。 总线为低电平,说明DHT11发送响应信号,DHT11发送响应信号后,再把总线拉80us,准备发送数据,每bit数据都以50us低电平时隙开始,电平的长短定了数据位是0还是1.格式见下图.如果读取响应信号为电平,则DHT11没有响应,请检查线路是否连接正常.当最后bit数据传送完毕后,DHT11拉低总线50us,随后总线由上拉电阻拉进空闲状态。5.03.2 实验的1. 掌握温度采集模块DHT11的作原理;2. 掌握单机实现温度采集模块DHT11数据采集的基本法,其中包括硬件和软件实现两部分;3. 熟悉单机数据采集系统中,温度采集模块DHT11作为传感器对

7、象的系统设计法。5.03.3 硬件设计选黄蜂实验板,温度采集模块DHT11是成品模块,直接插接到实验板上即可。硬件设计见“图5.03.5 温度采集模块DHT11连线图”。5.03.4 软件设计 5.03.4.1 软件设计说明温度采集模块DHT11是成品模块,直接插接到实验板上即可。按照上章介绍的作原理,我们就可以按照作时序编写出数据采集程序。我们还是采库函数的式进程序设计。在这节程序设计中,到了外部中断函数;prinif 重定向打印输出函数; USART串通讯函数;定时器函数。5.03.4.2 STM32库函数件本节实验及以后的实验我们都是到库件,其中 stm32f10 x_gpio.h头件包

8、含了GPIO端的定义。stm32f10 x_rcc.h 头件包含了系统时钟配置函数以及相关的外设时钟使能函数,所以我们要把这两个头件对应的stm32f10 x_gpio.c和stm32f10 x_rcc.c加到程中;Misc.c库函数主要包含了中断优先级的设置,stm32f10 x_exti.c 库函数主要包含了外部中断设置参数,tm32f10 x_tim.c库函数主要包含定时器设置,tm32f10 x_usart.c库函数主要包含串通讯设置,这些函数也要添加到函数库中。以上库件包含了本次实验所有要到的函数使功能。5.03.4.3 定义头件我们在每个程设计中都要创建了两个公共的件,这两个件主要

9、存放我们定义的公共函数和全局变量,以便以后每个功能模块(函数)之间传递参数。5.03.4.4 pbdata.h件的内容是语句 #ifndef、#endif是为了防pbdata.h件被多个件调时出现错误提。如果不加这两条语句,当两个件同时调pbdata件时,会提重复调错误。5.03.4.5 pbdata.c件的内容是 下是pbdata.c件详细内容,在件开始还是引“pbdata.h”件。 5.03.5 STM32系统时钟配置SystemInit()在每个程中必须在开始时配置并启动STM32系统时钟,这是基础,这次也不例外。5.03.6 GPIO引脚时钟使能5.03.7 GPIO管脚电平控制函数在

10、主程序中采while(1)循环语句,采查询式不停的读取温湿度数据,然后直接通过串送打印输出到屏幕。while(1)delay_ms(1000);5.03.8 stm32f10 x_it.c件的内容是在中断处理stm32f10 x_it.c件中仅串1函数空,进中断处理函数后,只有串1有参数输出。 if(USART_GetITStatus(USART1,USART_IT_RXNE)!=RESET)USART_SendData(USART1,USART_ReceiveData(USART1);5.03.9 dht11.h件的内容是函数dht11.h在这是为符合温湿度模块功能定义的专功能函数,dht1

11、1.h的内容如下:#define DHT11_DQ_High GPIO_SetBits(GPIO_DHT11,IO_DHT11)#define DHT11_DQ_Low GPIO_ResetBits(GPIO_DHT11,IO_DHT11)u8 DHT11_Read_Data(u8 *temp,u8 *humi);/ 读取温湿度5.03.10 dht11.c件的内容是定义函数dht11.c的内容如下:#include pbdata.hvoid DHT11_IO_IN(void)/ 温湿度模块输函数void DHT11_IO_OUT(void)/ 温湿度模块输出函数 void DHT11_IO_

12、OUT(void)/ 温湿度模块输出函数DHT11_IO_OUT(); /SET OUTPUTDHT11_DQ_Low; /DQ=0delay_ms(20); / 拉低少18msDHT11_DQ_High; /DQ=1delay_us(30); / 主机拉2040us/返回0:存在while (GPIO_ReadInputDataBit(GPIO_DHT11,IO_DHT11)=1)&retry=100)return 1;else retry=0;while (GPIO_ReadInputDataBit(GPIO_DHT11,IO_DHT11)=0)&retry=100)return 1;re

13、turn 0;/从DHT11读取个位/返回值:1/0u8 DHT11_Read_Bit(void)u8 retry=0;while(GPIO_ReadInputDataBit(GPIO_DHT11,IO_DHT11)=1)&retry100)/ 等待变为低电平retry+;delay_us(1);retry=0;while(GPIO_ReadInputDataBit(GPIO_DHT11,IO_DHT11)=0)&retry100)/ 等待变电平retry+; dat=0;dat=1;u8 DHT11_Read_Data(u8 *temp,u8 *humi)DHT11_Rst();if(buf

14、0+buf1+buf2+buf3)=buf4)*humi=buf0;*temp=buf2;else return 1;return 0;/初始化DHT11的IO DQ 同时检测DHT11的存在/返回1:不存在/返回0:存在void DHT11_Init(void)DHT11_Rst(); /复位DHT11DHT11_Check();/等待DHT11的回应5.03.11 main.c 件的内容是#include pbdata.hint fputc(int ch,FILE *f)USART_SendData(USART1,(u8)ch);int main(void)RCC_Configuratio

15、n();/ 系统时钟初始化 RCC_Configuration();/ 系统时钟初始化GPIO_Configuration();/ 端初始化USART_Configuration();DHT11_Init();void NVIC_Configuration(void)NVIC_InitTypeDef NVIC_InitStructure;NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);void USART_Configuration(void)USART_InitTypeDef USART_InitStructure;USART_Init(USART1,&USART_InitStructure);USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);USART_Cmd(USART1,ENABLE); USART_Cmd(USART1,ENABLE);USART_ClearFlag(USART1,USART_FLAG_TC);5.03.12 程序下载在这章节中要掌握DHT11温湿度传感器作时序,了解常的温湿度传感器功能和原理。请根据下图所指向的7个重点区域配置。其中(1)号区域根据机器的实际情况选择,我的机器虚拟出来的串号是COM3。(2)号区域请选择程序代码所在的件夹。(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论