前言
温度和湿度值是重要的物理参数,例如精密机械加工、实验室、温室大棚、粮库、重要活动场所、会议室、居住场所等都需要对温度和湿度进行实时采集和控制,因此设计温湿度采集系统具有重要意义。
一、实验目的
①利用stm32对DHT11模块进行数据采集
②将采集到的温湿度数据上云(本次实验并未成功上云)
二、实验环境
- 硬件:STM32F407ZGT6、DHT11温湿度传感器、杜邦线等
- 软件:Keil5、STM32f407固件库、STM32CudeMx、STM32CudeMx的f407软件包
- 接线:
DHT11 STM32
data — 》 PG9
vcc — 》 5V
GND — 》 GND
三、实验步骤
1、BSP工程项目创建
①打开STM32CudeMX
②点击创建工程
③搜索STM32F407ZGT6,双击黄色区域
④点击Categories——》System Core ——》GPIO,选择PF9和PF10,各自点击为GPIO_OutPut
⑤对GPIO进行具体配置
⑥配置RCC时钟
⑦配置系统时钟
⑧这里以串口1为例 我们可以选择串口的模式(异步,同步,半双工) 串口接收中断
a)点击USATR1
b)设置MODE为异步通信(Asynchronous)
c)基础参数:波特率为115200 Bits/s。传输数据长度为8 Bit。奇偶检验无,停止位1 接收和发送都使能
d)GPIO引脚设置 USART1_RX/USART_TX
e) NVIC Settings 一栏使能接收中断
⑨配置STM32F407ZGT6的时钟树,由于是外部8M的晶振,所以得出一下的时钟树
a)选择外部时钟HSE 8MHz
b)PLL锁相环倍频168倍
c)系统时钟来源选择为PLL
d)设置APB1分频器为 /4
⑩建立工程
2、BSP工程项目开发
(1)用keil5打开工程
(2)点击option(锤子),然后进行主频配置,修改为8.0或者12.0,然后重新打开该工程进行检查,最后进行编译。
(3)在keil5上面创建SYSTEM和HARDWAVE两个文件夹
(4)回到创建的test工程目录,添加这两个文件夹,复制库文件里面SYSTEM和HARDWAVE两个文件夹到test工程目录下。
(5)回到keil5里面,继续点击那个文件管理,然后根据对应的文件夹添加文件,一个都不要漏。
注:HARDWAVE也是这样添加工程文件进去。
(6)配置头文件路径,选择为第4步已经复制的两个文件夹(SYSTEM和HARDWAVE)
(7)编写代码
(8)检查配置,编译下载
(9)打开串口助手进行查看
四、实验代码
1、main.c
#include "main.h"
#include "usart.h"
#include "gpio.h"
#include &