标题:
STM32单片机+DHT11温湿度测量程序
[打印本页]
作者:
小白EE
时间:
2022-10-6 16:19
标题:
STM32单片机+DHT11温湿度测量程序
利用stm32f103c6t6和DHT11实现温湿度测量
制作出来的实物图如下:
51hei图片_20221006161053.jpg
(1.05 MB, 下载次数: 39)
下载附件
温湿度测量
2022-10-6 16:14 上传
STM32单片机源程序如下:
#include "stm32f10x.h" // Device header
#include "Delay.h"
#define MCU_Output 1
#define MCU_Input 0
extern uint8_t DHT11_exist_Plag;// DHT11状态标志位,0表示DHT11不存在,1表示DHT11存在
extern uint8_t Hum_Tem_Data[];// 存放温湿度数据数组
/****
*@brief 引脚初始化,将DHT11与PA10相连
*@parameter MCU_State:MCU_State=1时,单片机引脚配置为输出模式。MCU_State=0则配置为输入模式
*@ReturnValue 无
*/
void DHT11_DataPin_Init(uint8_t MCU_State)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
GPIO_InitTypeDef GPIO_InitStructure;
if(MCU_State)
{
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
}else
{
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;
}
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&GPIO_InitStructure);
}
/****
*@brief DHT11起始信号
*@parameter
*@ReturnValue
*/
void DHT11_Start(void)
{
Delay_s(1);
DHT11_DataPin_Init(MCU_Output);
GPIO_SetBits(GPIOA,GPIO_Pin_10);
GPIO_ResetBits(GPIOA,GPIO_Pin_10);
Delay_ms(20);
GPIO_SetBits(GPIOA,GPIO_Pin_10);
Delay_us(30);
DHT11_DataPin_Init(MCU_Input);
if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_10)==0)
{
DHT11_exist_Plag=1;
while(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_10)==0);
while(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_10)==1);
}
}
/****
*@brief DHT11温湿度测量
*@parameter 无
*@ReturnValue 无
*/
void DHT11_GetData(void)
{
int8_t i,j,Temp=0x00;
if(DHT11_exist_Plag==1)// 检测DHT11是否存在,若DHT11不存在,则不必进行下面步骤
{
for(j=0;j<5;j++)
{
for(i=0;i<8;i++)
{
while(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_10)==0);
Delay_us(30);
if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_10)==1)
{
Temp=Temp|(0x80>>i);// DHT11数据高位先出
while(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_10)==1);
}
}
Hum_Tem_Data[j]=Temp;
Temp=0x00;
}
if(Hum_Tem_Data[0]+Hum_Tem_Data[1]+Hum_Tem_Data[2]+Hum_Tem_Data[3]!=Hum_Tem_Data[4])// 校验数据是否正确,若不正确则数组全部写1
{
Hum_Tem_Data[0]=0xff;
Hum_Tem_Data[1]=0xff;
Hum_Tem_Data[2]=0xff;
Hum_Tem_Data[3]=0xff;
}
}else
{
DHT11_Start();
}
}
复制代码
DHT11_数据手册.pdf
(681.04 KB, 下载次数: 29)
2022-10-6 16:16 上传
点击文件名下载附件
下载积分: 黑币 -5
Keil代码下载:
Keil代码.7z
(176.88 KB, 下载次数: 107)
2022-10-8 03:01 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1