STM32F407dht11温湿度

本文档详细介绍了使用STM32F407ZGT6微控制器与DHT11温湿度传感器进行硬件连接、软件环境配置、工程创建、Keil MDK配置及代码实现的全过程。通过STM32CubeMX配置GPIO、RCC、USART和中断,以及使用外部8MHz晶振设置时钟。最终,将DHT11的数据通过串口进行接收并实现温湿度监测。
摘要由CSDN通过智能技术生成

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

在学习了单片机后,例如arduino等单片机,对于stm32来说这个会更难也更 为重要,在里面我们可以更加需要了解库函数,也需要自己写,所以我认为很有必要做,并学习stm32。

一、硬件准备

可以在https://pan.baidu.com/s/1p0LfRRw54vqTtx1yKDsQwA#list/path=%2F这个链接下面下载,提取文件密码为:f22d

1、STM32F407ZGT6

在这里插入图片描述

2、DHT11温湿度传感器

在这里插入图片描述

二、环境搭建(软件)

1、stm32需要使用MDK软件(keil5)

官方下载链接如下:http://www.keil.com/demo/eval/arm.htm

2、STM32f407固件库

官方下载链接如下:http://www.keil.com/dd2/pack

3、STM32CudeMx

官方下载链接如下:http://www.st.com/web/en/catalog/tools/PF259242

4、STM32CudeMx的f407软件包

官方下载链接如下:http://www.st.com/web/en/catalog/tools/PF259243

5、ST-LINK驱动

建立好的工程需要烧录到开发板上面,需要用到这个下载器。
如下:
在这里插入图片描述

6、stm32固件(keil5)

在这里插入图片描述

注:建立的工程放的文件夹不应含有中文

三、工程创建

1、创建BSP工程(stm32需要的函数)

①打开STM32CudeMX
在这里插入图片描述
②搜索芯片类型
在这里插入图片描述
③配置(需要按顺序配置,不然可能会乱和出错)
点击Categories——》System Core ——》GPIO,选择PF9和PF10,各自点击为GPIO_OutPut
在这里插入图片描述
GPIO进行具体配置
在这里插入图片描述
配置RCC时钟
在这里插入图片描述
配置系统时钟
在这里插入图片描述
④选择串口的模式(异步,同步,半双工) 串口接收中断
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

时钟配置可以https://blog.csdn.net/as480133937/article/details/98845509在这个链接学习。
在这里插入图片描述
⑥建立工程
在这里插入图片描述
在这里插入图片描述

四、keil配置及源代码

1、点击option(锤子),然后进行主频配置,修改为8.0或者12.0,然后重新打开该工程进行检查,最后进行编译

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
把这两个添加进去。
a)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
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

.3

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值