RISC-V MCU开发实战(一) :DHT11

59 篇文章 35 订阅
51 篇文章 6 订阅

RISC-V MCU开发实战(一) :DHT11

软件平台 :MounRiver Studio(MRS),硬件平台:CH32V103开发板、DHT11温度传感器。

1、DHT11简介
DHT11是一款有已校准数字信号输出的温湿度传感器。 其精度湿度±5%RH, 温度±2℃,量程湿度5-95%RH,温度-20~+60℃。该传感器包括一个电阻式测湿元件和一个NTC测温元件,可通过单片机等微处理器简单的电路连接就能够实时的采集本地湿度和温度。 DHT11与单片机之间能采用简单的单总线进行通信,仅仅需要一个I/O口。单总线是美国DALLAS公司推出的外围串行扩展总线技术。与SPI、I²C串行数据通信方式不同.它采用单根信号线,既传输时钟又传输数据,而且数据传输是双向的,具有节省I/O口线、资源结构简单、成本低廉、便于总线扩展和维护等诸多优点。传感器内部湿度和温度数据40Bit的数据一次性传给单片机,数据采用校验和方式进行校验,有效的保证数据传输的准确性。
关于DHT11具体信息,可参考其产品手册

2、硬件连接
DHT11的VCC、GND引脚与单片机VCC、GND引脚连接
DHT11的Dout引脚与单片机PA1连接(用户可自定义)

3、MRS中开发流程
1)首先新建一个CH32V103C8T6 的工程,流程与之前文章中操作相同,新建hardware文件夹,外设DHT11文件夹,DHT11.c源文件以及DHT11.h头文件,添加头文件路径,
如图:
在这里插入图片描述

在头文件定义两个确定IO传输方向的宏,以及IO操作函数的宏备用,其他就是函数声明,代码如下:
在这里插入图片描述

源文件中实现DHT11初始化函数,复位函数,检测函数,通信函数,其中DHT11一次完整的数据传输为40BIT,高位先出,数据格式为:8位湿度整数数据+8位湿度小数数据+8位温度数据+8位温度小数据+8位校验位,根据DHT11手册说明,小数位为预留位,现在全为0,校验位为8位湿度整数数据+8位湿度小数数据+8位温度数据+8位温度小数据结果的末8位,校验位正确时,再将温湿度数据输出。
具体函数代码如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

主函数逻辑实现循环读和打印即可

在这里插入图片描述

2)成功编译之后,可进入调试来观察寄存器的值(不要在读取数据过程中打断点)

在这里插入图片描述

3)调试无误之后,将程序下载到板子,用串口打印助手观察输出

在这里插入图片描述

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值