STM32+DHT11 读取数据为0或温湿度过高的常见原因及解决办法

这篇具有很好参考价值的文章主要介绍了STM32+DHT11 读取数据为0或温湿度过高的常见原因及解决办法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.读取数据为0

如果代码正确的话,我遇到的温湿度为0的原因主要还是电源的问题,比如没有给开发板单独供电或者连线松动。因为有时候插着ST-Link连接到了电脑,开发板和DHT11的电源指示灯都会亮,但还是需要给开发板连上电源,这样更稳定,插上电源之后复位一下读到的温湿度就正常了。有时候线连的不紧也会这样,连紧一点就好了。

2.温湿度过高,达到八九十

这个原因比较奇怪,因为我确定DHT11的代码是没什么问题的,换了好几种代码结果都是温度89℃,显然不对。最后我在主函数里没有调用DHT11的初始化函数,结果运行起来正常了,我觉得应该是初始化的问题。初始化代码如下。


void DHT11_GPIO_Init_OUT(void)
{
	GPIO_InitTypeDef GPIO_InitStructure;
	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
	
	GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_Out_PP; 
	GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_9;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	
	GPIO_Init(GPIOB, &GPIO_InitStructure);

}


void DHT11_GPIO_Init_IN(void)
{
	GPIO_InitTypeDef GPIO_InitStructure;
	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
	
	GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_IN_FLOATING; 
	GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_9;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	
	GPIO_Init(GPIOB, &GPIO_InitStructure);

}
void DHT11_Start(void)
{
	DHT11_GPIO_Init_OUT();
	
	dht11_high; 
	delay_us(30);
	
	dht11_low; 
	delay_ms(20);
	
	dht11_high; 
	delay_us(30);
	
	DHT11_GPIO_Init_IN(); 
}

欢迎大家交流。文章来源地址https://www.toymoban.com/news/detail-739525.html

到了这里,关于STM32+DHT11 读取数据为0或温湿度过高的常见原因及解决办法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32+DHT11温湿度传感器

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

    2023年04月13日
    浏览(56)
  • 基于STM32使用DHT11温湿度模块

    目录 前言 一、DHT11模块介绍 1、原理图 2、通信时序(单总线) 2.1、通信总过程 2.2、起始信号及DHT11应答 2.3、数字1信号的应答时序 2.4、数字0信号的应答时序 2.5、数据格式 二、使用步骤 1.使用CubeMX进行配置(基于stm32f407zgt6) 2.编写相关函数 ​编辑3、实验结果 三、代码分享

    2024年02月10日
    浏览(52)
  • stm32连接DHT11温湿度传感器

    目录 1. DHT11简介 1.1. 连接电路  1.2. 串行接口 (单线双向)  2. cubeMX设置 3. 代码开发  3.1. 实现定时函数 3.2. 打开串口调试 3.4. 测试代码实现 4. 运行效果 信息如下: 建议连接线长度短于20米时用5K上拉电阻,大于20米时根据实际情况使 用合适的上拉电阻  DHT11的供电电压为 3-5

    2023年04月16日
    浏览(55)
  • [STM32]HAL库STM32CubeMX+DHT11温湿度传感器

    目录 所用的工具: 知识概括: DHT11介绍: DHT11性能说明: 接口说明  电源引脚 串行接口   工程创建 1、设置RCC 2、时钟设置 3、项目文件设置 4、设置IO口(DATA) 5、TIM时钟配置 6、USART配置   程序编写:          1、TIM3实现微秒(us)级延时函数: 2、IO口配置 3、DHT11检测

    2024年02月09日
    浏览(47)
  • 【STM32(HAL库)--DHT11温湿度传感器】

    stm32控制DHT11温湿度传感器,进行温湿度的读取.以下是自己的一点学习过程和心得,若有不妥之处,还望各位大佬指正,在下感激不尽. DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器 。 它应用专用的数字模块采集技术温湿度传感技术, 确保产品具有极高

    2024年04月15日
    浏览(51)
  • STM32+DHT11温湿度传感器(含完整代码)

    前言 DHT11数字温湿度传感器是一种数字信号输出的温湿度传感器,具有高可靠性和长期稳定性。它采用专用的数字模块和温湿度传感技术,提供准确的温湿度数据。传感器内部包含感湿元件和测温元件,并与高性能单片机连接。因此,该传感器具有优异的品质、快速响应、抗

    2024年04月08日
    浏览(71)
  • stm32项目之DHT11温湿度显示(LCD1602)

    掌握LCD1602的使用 掌握DHT11的原理及使用 看懂LCD1602和DHT11时序图 看懂DHT11的原理 掌握LCD1602的显示 编写程序用LCD1602显示温湿度 DHT11部分: DATA 用于微处理器与 DHT11之间的通讯和同步,采用单总线数据格式,一次 通讯时间4ms左右,数据分小数部分和整数部分,具体格式在下面说明,当

    2024年02月02日
    浏览(55)
  • [教程]一文搞懂STM32使用DHT11采集温湿度

          DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高 的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测 温元件,并与一个高性能8位单片机相连接。

    2024年02月01日
    浏览(39)
  • STM32使用温湿度DHT11基于HAL库开发

    DHT11 是一款湿温度一体化的数字传感器。该传感器包括一个电阻式测湿元件和一个 NTC 测温元件,并与一个高性能 8 位单片机相连接。通过单片机等微处理器简单的电路连接就能够 实时的采集本地湿度和温度。DHT11 与单片机之间能采用简单的单总线进行通信,仅仅需要一 个

    2024年02月03日
    浏览(68)
  • 【STM32】DHT11温湿度模块传感器详解&代码

    DHT11是数字温湿度传感器,测量范围:湿度20%-95%,温度0-50℃,广泛应用于加湿器、温湿度计、空调、汽车等领域。 如上图DATA引脚用于MCU与DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右(超时时间的判断)。一次完整的数据传输为40bit,高位先出(MSB最高

    2024年02月12日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包