当前位置: 首页 > news >正文

DHT11介绍

一、介绍

DHT11是一款含有已校准数字信号输出的温湿度复合传感器,采用了自主研发的集成式数字温湿度元件,应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。DHT11传感器内包含一个温湿度测量元件和一个高性能MCU。

DHT11数据格式

DHT11的DATA传输一次完成整的数据为40bit,按照高位在前,低位在后的顺序传输

数据格式为 8bit湿度整数数据+8bit湿度小数数据+8bit温度整数数据+8bit温度小数数据+8bit校验位

正常情况下,前四个字节刚好和校验位相等,通过这种机制可以保证数据传输的准确性

#include "dht11.h"
#include "stdio.h"
#include "delay.h"
#include "string.h"char dht11_data[5]={0};void dht11_gpio_input(void)
{GPIO_InitTypeDef gpio_initstruct;DHT11_CLK_ENABLE();  gpio_initstruct.Pin = DHT11_PIN;                                              gpio_initstruct.Mode =GPIO_MODE_INPUT;               gpio_initstruct.Speed =GPIO_SPEED_FREQ_HIGH;             HAL_GPIO_Init(DHT11_PORT,&gpio_initstruct);
}void dht11_gpio_output(void)
{GPIO_InitTypeDef gpio_initstruct;DHT11_CLK_ENABLE();  gpio_initstruct.Pin = DHT11_PIN;                                              gpio_initstruct.Mode =GPIO_MODE_OUTPUT_PP;               gpio_initstruct.Speed =GPIO_SPEED_FREQ_HIGH;             HAL_GPIO_Init(DHT11_PORT,&gpio_initstruct);}void dht11_start(void)
{/*起始*/dht11_gpio_output();DHT11_DQ_OUT(1);    //拉高DHT11_DQ_OUT(0);     //拉低delay_ms(20);         DHT11_DQ_OUT(1);     //拉高/*响应*/dht11_gpio_input();while(DHT11_DQ_IN);      //若为1则一直循环 若为0则跳出循环  等待DHT11拉低电平while(!DHT11_DQ_IN);      //等待DHT11拉高电平while(DHT11_DQ_IN);        //等待DHT11拉低电平}uint8_t dht11_read_byte(void)
{uint8_t temp =0;uint8_t i=0;uint8_t read_data =0; for(i=0;i<8;i++){while(!DHT11_DQ_IN);      //等待DHT11拉高电平delay_us(50);if(DHT11_DQ_IN == 1){temp=1;while(DHT11_DQ_IN);}elsetemp =0 ;read_data =read_data << 1;read_data |= temp ;}return read_data;
}void dht11_read(uint8_t *result)
{uint8_t i=0;dht11_start();     //起始和响应dht11_gpio_input();     for(i =0 ;i<5; i++)dht11_data[i] =dht11_read_byte();if(dht11_data[0]+dht11_data[1]+dht11_data[2]+dht11_data[3] == dht11_data[4] ){memcpy(result,dht11_data,4);printf("湿度 : %d.%dRH ",dht11_data[0],dht11_data[1]);printf("温度 ; %d.%d℃\r\n",dht11_data[2],dht11_data[3]);}delay_ms(2000);}

相关文章:

  • 对于Python虚拟环境的理解
  • YOLOv8模型剪枝笔记(DepGraph和Network Slimming网络瘦身)
  • C++(29):结构体
  • SpringBoot Day_03|数据校验|异常处理|日志级别|定时器
  • 位运算及其算法
  • 并发编程 之 可见性、原子性、volatile、synchronized、Java内存模型的深入剖析
  • Google机器学习实践指南(梯度下降篇)
  • 裸机任务调度框架、DMA、空闲中断
  • Linux安装SRILM
  • HCIP(广域网)
  • 养生指南:五维守护身心健康
  • Spring Boot 注解 @ConditionalOnMissingBean是什么
  • 【Bluedroid】蓝牙 HID Host connect全流程源码解析
  • 通过云服务器实现异地组网 部署WireGuard
  • LeetCode Hot100 (双指针)
  • F5《2025年应用战略现状》报告:AI 落地加速,企业战略从讨论迈向行动
  • 【风控】模型算法区分度指标KS
  • 【C++进阶篇】红黑树的实现(赋源码)
  • 【软件使用】RSS(Really Simple Syndication)
  • 养生指南:五维提升健康品质
  • 网站怎么做rss/营销型网站建设托管
  • 成都网络营销公司/北京网站seo费用
  • 视频工厂网站建设/seo排名工具
  • 美国网站做调查赚钱可信吗/杭州网络
  • 手机网站制作套餐/深圳百度推广属于哪家公司
  • 免费java源码网/太原seo外包平台