基于STM32开发板实现温湿度传感数据采集

一、实验要求

本实验将选用STM32F407ZGT6开发板进行项目开发,选用的传感器为DHT11温湿度传感器。传感器将采集到的数据传输到STM32(MCU)主控进行数据处理,最后通过串口打印出来。

二、所需硬件及接线

(1)所需硬件:STM32F407ZGT6、DHT11温湿度传感器、杜邦线等
(2)接线

DHT11 STM32
data PG9
VCC 5V
GND GND

三、软件环境

(1)Keil5:官方链接
(2)STM32f407固件库:官方链接
(3)STM32CudeMx:官方链接
(4)STM32CudeMx的f407软件包:官方链接
也可以到此百度链接下载。
https://pan.baidu.com/s/1p0LfRRw54vqTtx1yKDsQwA
密码为:f22d

四、实验步骤

1、创建一个BSP工程项目
①打开STM32CudeMX
②点击创建工程
③在搜索框搜索STM32F407ZGT,并双击黄色区域
④点击Categories——》System Core ——》GPIO,选择PF9和PF10,各自点击为GPIO_OutPut
⑤对GPIO进行具体配置
⑥配置RCC时针:都选择Crystal/Ceramic Resonator
⑦配置系统时针:选择Serial Wire
⑧这里以串口1为例 我们可以选择串口的模式(异步,同步,半双工) 串口接收中断

1)点击USATR1
2)设置MODE为异步通信(Asynchronous)
3)基础参数:波特率为115200 Bits/s。传输数据长度为8 Bit。奇偶检验无,停止位1 接收和发送都使能
4)GPIO引脚设置 USART1_RX/USART_TX
5) NVIC Settings 一栏使能接收中断
⑨配置STM32F407ZGT6的时钟树,由于是外部8M的晶振,所以得出以下的时钟树:

1)选择外部时钟HSE 8MHz
2)PLL锁相环倍频168倍
3)系统时钟来源选择为PLL
4)设置APB1分频器为 /4
⑩建立工程完成
2、BSP工程项目开发
①用keil5打开.uvprojx文件
②点击option(锤子),然后进行主频配置,修改为8.0或者12.0,然后重新打开该工程进行检查,最后进行编译
③在keil5上面创建SYSTEM和HARDWAVE两个文件夹
④回到上面创建的test工程目录,添加这两个文件夹,在百度链接(STM32课程资料\库文件),复制库文件里面SYSTEM和HARDWAVE两个文件夹到test工程目录下
⑤回到keil5里面,继续点击那个文件管理,然后根据对应的文件夹添加文件,一个都不要漏。
注:HARDWAVE也是这样添加工程文件进去
⑥配置头文件路径,选择为第4步已经复制的两个文件夹(SYSTEM和HARDWAVE)
⑦编写相关代码
⑧编译下载,打开串口助手即可查看采集的数据

五、实验代码

(1)main.c

#include "main.h"
#include "usart.h"
#include "gpio.h"
#include "stdio.h"
#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "dht11.h"
 
 
void SystemClock_Config(void);
 
int main(void)
{
   
  u8 t=0;			     
	u8 temperature;  	    
	u8 humidity; 
  int times;
  HAL_Init();
 
  /* USER CODE BEGIN Init */
 
  /* USER CODE END Init */
 
  /* Configure the system clock */
	delay_init(168);               	           	
  SystemClock_Config();
	DHT11_Init();
 
  /* USER CODE BEGIN SysInit */
 
  /* USER CODE END SysInit */
 
  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_USART1_UART_Init();
  HAL_UART_Receive_IT(&huart1, (uint8_t *)aRxBuffer, RXBUFFERSIZE);
  while (1)
  {
   
			if(t%10==0)//?100ms????
		{
             
			DHT1
  • 5
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值