【华大系列】HC32F460模拟单总线读取DHT11温湿度


   

前言

  不知不觉已经拖更快三个月了,有很多新学的知识想分享上来,但是帖子都只写了一半就又去忙其他的事情了,于是帖子就一篇压一篇…不仅如此再回过头想把帖子写完又要重新把知识捡起来。 目前觉得这样会花费更多的时间,导致事情越来越多,不知道这种边学边复习的方式会不会更好,现在感觉的话还是更喜欢学完+写帖子再去做其他的事情。 有心得的小伙伴可以分享一下学习经验。

  最近一直在学习华大的板子 (PS:两个月前) ,主要是HC32F460、F176、F005这三块对比着学,因为手上正好有DHT11,后面要用F460做项目,就想着先用HC32F460实现DHT11的温湿度读取,结果上网一搜。得...根本搜不到华大单片机任何和DHT11或者单总线相关的资料。 不禁让我有个大大的疑惑,难道华大没有单总线协议吗?(感觉是DHT11太Low了,谁会把广泛应用于工业领域的华大和一个单总线协议的DHT11联系在一起呢(除了我)。


–>本文用HC32F460实现模拟单总线读取DHT11温湿度


ps:后续文章为了提高效率,一些知识点我会放一些我仔细看过,觉得通俗易懂的文章链接,正文就不再赘述。内容则主要是在前人基础上的成果、心得以及希望大家不要再踩的坑。


   

一、DHT11与单总线

   
大家可以看看这篇文章

   另外需要注意的是如下图单总线的IO需要上拉,内部上拉也可以。并且给DHT11供电最好是在3.1V以上,因为 实际遇到过供电2.9V,DHT11无法响应。

   DHT11手册附在文末网盘链接中

在这里插入图片描述
在这里插入图片描述
   如上图在知道HC32有内部上拉能力后,更加明确了能和DHT11通信。


   

二、DHT11通信协议

   
   这里关于协议部分,最好还是要捋清楚,个人认为最好还是把起始信号记住,学习其他协议的时候可以横向对比,这样效率会高一些

在这里插入图片描述


   

三、串口打印温湿度

   
   程序部分其实和STM32没多大区别,主要封装的函数名不同(当然也包括时钟、定时器配置不同,不过这些暂时可以忽略)。
   程序功能很简单,注释较少,如有疑问可以留言。
在这里插入图片描述
   
   其次程序中使用串口中断方式讲读取到的温度打印出来,如下图标注1的,使能让串口开始发送(TxEmpty)的,标注2同理,发送完成(TxCmplt)结束发送。
   
在这里插入图片描述
在这里插入图片描述

   
   👇当然这些参数可以查手册明确作用,直接上图👇
   
请添加图片描述

在这里插入图片描述


   

四、最重要的是波形!!!

   
   最后如何判断DHT11读数正确,最直接但也是最本质的就是通过波形判断用我本人实际体会来说,看波形和不看对于协议完全是两个层面的理解。 如果没有示波器可以用逻辑分析仪看(常用的八通道的都足够了)。
   
    在此之前我认为大家应该在脑海中有个基本的印象。不妨问问自己:单总线起始信号高低电平如何变换?拉低多少ms?DHT11又如何做出回应?

4.1 波形分析

   
   下图时间问题,我认为是示波器问题,如果大家知道是什么问题,还请留言告诉我谢谢!
   
请添加图片描述
   
   下图显示时间又非常正确。
   
在这里插入图片描述

请添加图片描述
请添加图片描述
   
   第一位是温度第二位是湿度
   
在这里插入图片描述

4.2 实验现象

   成功通信后,LED灯闪烁;请忽略我的板子:)
   这里注意如果IO口加的保护电阻过大,会导致单总线不能被拉的很低,从而导致通讯失败。我在复现现象的时候就遇到这个问题,所以我直接用杜邦线接在芯片引脚上。

HC32F460模拟单总线读取DHT11温湿度


   

五、总结

   事实上反思一下,大学期间用STM32用的多,网上又鱼龙混杂的STM的资料也数不清,学习之前就先搜搜资料,反正总能搜得到,就养成了没有资料就很难做的思维惯性。
   最后欢迎大家交流探讨,有问题请指出。

网盘链接_有效期至2025-03
提取码:LUCK

  • 44
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值