DHT11 是一款湿温度一体化的数字传感器。该传感器包括一个电阻式测湿元件和一个 NTC
测温元件,并与一个高性能 8 位单片机相连接。通过单片机等微处理器简单的电路连接就能够
实时的采集本地湿度和温度。DHT11 与单片机之间能采用简单的单总线进行通信,仅仅需要一
个 I/O 口。传感器内部湿度和温度数据 40Bit 的数据一次性传给单片机,数据采用校验和方式
进行校验,有效的保证数据传输的准确性。DHT11 功耗很低,5V 电源电压下,工作平均最大
电流 0.5mA。
引脚定义:VCC-5V
GND-GND
OUT-PB9
相关步骤如下:
(1)打开CubeMX
(2)选择芯片型号,这里本忍选择STM32F103C6T6芯片
(3)配置调试
(4)配置时钟
(5)配置时钟树
(6)配置GPIO引脚PB9
(7)配置定时器
(8)配置串口
(9)给工程起个名,这里尽量不要使用中文字符
(10) 这步是个人小习惯,可选可不选
(11) 生成工程
(12)打开工程
(12)建一个用户文件夹
(13)将原工程文件夹之下的User文件夹整个复制到新建立的文件下
(14)打开main文件,引入include "stdio.h"头文件以及温湿度头文件
#include "stdio.h"
#include "dht11.h"
(15)导入驱动文件
(16)
(17)
(18)编写定时器代码
void delay_us(uint16_t us){
uint16_t differ = 0xffff-us-5;
__HAL_TIM_SET_COUNTER(&htim3,differ); //??TIM7??????
HAL_TIM_Base_Start(&htim3); //?????
while(differ < 0xffff-5){ //??
differ = __HAL_TIM_GET_COUNTER(&htim3); //?????????
}
HAL_TIM_Base_Stop(&htim3);
}
void Delay_us(uint16_t myus)//基于TIM3定时器的μs延时函数
{
uint16_t differ = 0xffff-myus-5;
__HAL_TIM_SET_COUNTER(&htim3,differ); //??TIM7??????
HAL_TIM_Base_Start(&htim3); //?????
while(differ < 0xffff-5){ //??
differ = __HAL_TIM_GET_COUNTER(&htim3); //?????????
}
HAL_TIM_Base_Stop(&htim3);
}
void delay_us(uint16_t us);
void Delay_us(uint16_t myus);
(19)重写printf
int fputc(int ch,FILE *f)
{
HAL_UART_Transmit(&huart1,(uint8_t *) &ch,1,HAL_MAX_DELAY);
return ch;
}
int fgetc(FILE *f)
{
uint8_t ch;
HAL_UART_Receive(&huart1,(uint8_t *)&ch,1,HAL_MAX_DELAY);
return ch;
}
(20)黏贴相关执行代码
uint16_t temperature;
uint16_t humidity;
while(DHT11_Init()){
printf("DHT11 Checked failed!!!\r\n");
HAL_Delay(500);
}
printf("DHT11 Checked Sucess!!!\r\n");
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
DHT11_Read_Data(&temperature,&humidity);
printf("DHT11 Temperature = %d.%d degree\r\n",temperature>>8,temperature&0xff);
printf("DHT11 Humidity = %d.%d%%\r\n",humidity>>8,humidity&0xff);
HAL_Delay(1000);
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
(21)最后一步
(22)编译下载,找个串口助手就行了
链接:https://pan.baidu.com/s/1hMjIk4ucUJh3N5Znk3XiBQ?pwd=53k2
提取码:53k2
--来自百度网盘超级会员V2的分享文章来源:https://www.toymoban.com/news/detail-435177.html
好的,自己下载昂,点个赞加个收藏啥的不过分吧。OK文章来源地址https://www.toymoban.com/news/detail-435177.html
到了这里,关于STM32使用温湿度DHT11基于HAL库开发的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!