当前位置: 首页 > 产品展示 > 数码模块

产品展示

PRODUCTS
×

STM32 模块篇-温湿度传感器模块(DHT11)实验

发布时间:2021-08-01 06:47:23

来源:火狐直播平台

  DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。

  DATA用于微处理器与DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数部分和整数部分,具体格式在下面说明,当前小数部分用于以后扩展,现读出为零.操作流程如下:

  数据传送正确时校验和数据等于“8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据”所得结果的末8位。

  用户MCU发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,用户可选择读取部分数据.从模式下,DHT11接收到开始信号触发一次温湿度采集,如果没有接收到主机发送开始信号,DHT11不会主动进行温湿度采集.采集数据后转换到低速模式。

  总线空闲状态为高电平,主机把总线响应,主机把总线能检测到起始信号。DHT11接收到主机的开始信号后,等待主机开始信号结束,然后发送80us低电平响应信号.主机发送开始信号结束后,延时等待20-40us后,读取DHT11的响应信号,主机发送开始信号后,可以切换到输入模式,或者输出高电平均可,总线由上拉电阻拉高。

  总线发送响应信号后,再把总线us,准备发送数据,每一bit数据都以50us低电平时隙开始,高电平的长短定了数据位是0还是1.格式见下面图示.如果读取响应信号为高电平,则DHT11没有响应,请检查线路是否连接正常.当最后一bit数据传送完毕后,DHT11拉低总线us,随后总线由上拉电阻拉高进入空闲状态。

  选用大黄蜂实验板,温度采集模块DHT11是成品模块,直接插接到实验板上即可。硬件设计见“图5.03.5温度采集模块DHT11连线图”。

  温度采集模块DHT11是成品模块,直接插接到实验板上即可。按照上一章介绍的工作原理,我们就可以按照工作时序编写出数据采集程序。我们还是采用库函数的方式进行程序设计。

  在这节程序设计中,用到了外部中断函数;prinif重定向打印输出函数;USART串口通讯函数;定时器函数。

  本节实验及以后的实验我们都是用到库文件,其中stm32f10x_gpio.h头文件包含了GPIO端口的定义。stm32f10x_rcc.h头文件包含了系统时钟配置函数以及相关的外设时钟使能函数,所以我们要把这两个头文件对应的stm32f10x_gpio.c和stm32f10x_rcc.c加到工程中;Misc.c库函数主要包含了中断优先级的设置,stm32f10x_exti.c库函数主要包含了外部中断设置参数,tm32f10x_tim.c库函数主要包含定时器设置,tm32f10x_usart.c库函数主要包含串行通讯设置,这些函数也要添加到函数库中。以上库文件包含了本次实验所有要用到的函数使用功能。

  我们在每个工程设计中都要创建了两个公共的文件,这两个文件主要存放我们自定义的公共函数和全局变量,以方便以后每个功能模块(函数)之间传递参数。

  语句#ifndef、#endif是为了防止pbdata.h文件被多个文件调用时出现错误提示。如果不加这两条语句,当两个文件同时调用pbdata文件时,会提示重复调用错误。

  在主程序中采用while(1)循环语句,采用查询方式不停的读取温湿度数据,然后直接通过串口送打印输出到屏幕。

  在中断处理stm32f10x_it.c文件里中仅串口1子函数非空,进入中断处理函数后,只有串口1有参数输出。

  函数dht11.h在这里是为符合温湿度模块功能自定义的专用功能函数,dht11.h的内容如下:

  USART_InitStructure.USART_Mode=USART_Mode_RxUSART_Mode_Tx;

  第一,去掉了原来使用的goto语句,因为C语言中除了错误处理之外,不建议使用goto语句;第二,fmt和pnt的含义更加明确,它们始终指向下一个需要处理的字符和变参;第三,整理了程序结构,使它更加清晰。void uart_printf(USART_TypeDef *USARTx, char *fmt, ...){char *pnt = (char *)&fmt + sizeof(fmt);int len;while (*fmt != ) {if (*fmt == %) {if (*(fmt + 1) == c) {uart_send_byte(USARTx, *(

  简介:STM32之TIM3_PWM程序详解:调整CCR2_Val的值来改变占空比,逐步的控制LED1的亮度, 占空比大过一定值时,亮度的变化就不明显了,所以CCR2_VAL最大设定到17000。原理图:程序分析:int main(void){unsigned char a=0;TIM_OCInitTypeDef TIM3_OCInitStructure;RCC_Configuration();time_ini();SysTick_Config(72000); //配置SYSTICK时钟节拍为1ms一次while(1){Delay(1);//延时1msTIM3_OCInitStructure.TIM_OCMode = TIM

  之TIM3_PWM程序 /

  简介: 输入捕获模式可以用来测量脉冲宽度或者测量频率。STM32的定时器,除了TIM6和TIM7,其他定时器都有输入捕获功能。STM32的输入捕获,简单的说就是通过检测TIMx_CHx上的边沿信号,在边沿信号发生跳变(比如上升沿/下降沿)的时候,将当前定时器的值(TIMx_CNT)存放到对应的通道的捕获/比较寄存(TIMx_CCRx)里面,完成一次捕获。同时还可以配置捕获时是否触发中断/DMA 等.例如:我们用到TIM5_CH1来捕获高电平脉宽,也就是要先设置输入捕获为上升沿检测,记录发生上升沿的时候TIM5_CNT的值。然后配置捕获信号为下降沿捕获,当下降沿到来时,发生捕获,并记录此时的TIM5_CNT值。这样,前后两次TIM5

  以前一直使用STM32的标准库,需要一步步地将代码加进去,将编译选项设置好,然后再编译整个工程。这个编译过程是一个相当慢的过程!完全编译大约需要一支烟的时间。每次建立工程都这么编译,是一个相当浪费时间和香烟的过程。于是,我有了将库编译成lib文件的想法。本文就是我将STM32F4的标准库编译成lib文件并在工程中使用的过程。适用对象:1. 熟悉库,不想再看库里边代码2. 有稳定的库,库文件更新不频繁3. 库文件多,每次编译时间长下面是我将STM32F4的标准库编译成lib并在工程中使用的过程:1、建立创建lib的工程2、将库文件拷贝到工程目录:将库里边目录STM32F4xx_StdPeriph_lib v1.0.2STM32

  的标准库编译成lib使用 /

  1.1 STM32 的低功耗模式STM32 降低功耗的方法除了可以通过降低系统时钟和关闭 APB 和 AHB 总线上未被使用的外设时钟以外,最好的方式就是让 STM32 进入低功耗模式了。 STM32 的低功耗模式一共有三种模式:1、睡眠模式。Cortex-M3 内核停止,所有外设包括 Cortex-M3 核心的外设,如:NVIC、系统时钟(SysTick)等仍在运行。2、停止模式。所有时钟都已停止。3、待机模式。1.8V 电源关闭。 三种模式详细如下:在这三种模式中,最低功耗的是待机模式,在待机模式下,最低只需要 2uA左右的电流。停机模式是次低功耗模式,典型电流的消耗在 20uA 左右。最后就是睡眠模式了。1.2 低功耗的操作

  在MDK环境下,终于将3.90版本的UCGUI移植到STM32下了,在网上看到的都是例程代码,很少看到有关于在STM32下移植UCGUI的教程方法,为了方便大家,特写此移植方法,大家可以借鉴(有错误之处,望大家指点出来共同讨论!)移植步骤:第一步:首先,得把你的TFT底层驱动写好,既在裸机下,可以正常显示。第二步:加入UCGUI程序包。第三步:配置LCDConf.h GUIConf.h GUITouchConf.h(由于我的液晶不带触摸功能,此配置在此不讲。)配置LCDConf.h文件如下:#ifndef LCDCONF_H#define LCDCONF_H#define LCD_XSIZE (160) //配置TFT的水平

  移植UCGUI实现GPS /

  英国Atmospheric sensors 远程空气质量检测仪 - AS510技术解决方案

  有奖直播报名|基于迈来芯第二代位置传感器优化设计的新一代产品,更高的性能和富有竞争力的成本

  双核设计STM32WB15无线家族新成员,支持蓝牙BLE5.0,具有320KB Flash和48KB SRAM

  51单片机PIC单片机AVR单片机ARM单片机嵌入式系统汽车电子消费电子数据处理视频教程电子百科其他技术STM32MSP430单片机资源下载单片机习题与教程词云: