/******************** (C) COPYRIGHT 2012 青风电子 ********************
* 文件名 :led.c
* 描述 :
* 实验平台:青风stm8开发板
* 描述 :LED闪烁
* 作者 :青风
* 店铺 :qfv5.taobao.com
硬件连接:pi0----led1
pe4----led2
pe3----led3
**********************************************************************/
#include "dht11.h"
void CLK_Init(void)
{
/* Deinitializes the CLK peripheral registers to their default reset */
CLK_DeInit();
/* Clock divider to HSI/1 16M*/
CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);
}
void delay_us(uint16_t nCount)
{
nCount *= 3;
while(--nCount);
}
/**
* @brief _delay_ms
* @param nCount
* @retval None
*/
void delay_ms(uint16_t nCount)
{
while(nCount--)
{
delay_us(1000);
}
}
//复位DHT11
void DHT11_Rst(void)
{
DTH11_PIN_SET_OUT(); //SET OUTPUT
DTH11_WR0(); //拉低DQ
delay_ms(20); //拉低至少18ms
DTH11_WR1() ; //DQ=1
delay_us(30); //主机拉高20~40us
}
//等待DHT11的回应
//返回1:未检测到DHT11的存在
//返回0:存在
u8 DHT11_Check(void)
{
u8 retry=0;
DTH11_PIN_SET_IN();//SET INPUT
while ((R_DTH11)&&retry<100)//DHT11会拉低40~80us
{
retry++;
delay_us(1);
};
if(retry>=100)return 1;
else retry=0;
while (!(R_DTH11)&&retry<100)//DHT11拉低后会再次拉高40~80us
{
retry++;
delay_us(1);
};
if(retry>=100)return 1;
return 0;
}
//从DHT11读取一个位
//返回值:1/0
u8 DHT11_Read_Bit(void)
{
u8 retry=0;
while((R_DTH11)&&retry<100)//等待变为低电平
{
retry++;
delay_us(1);
}
retry=0;
while(!(R_DTH11)&&retry<100)//等待变高电平
{
retry++;
delay_us(1);
}
delay_us(40);//等待40us
if((R_DTH11))return 1;
else return 0;
}
//从DHT11读取一个字节
//返回值:读到的数据
u8 DHT11_Read_Byte(void)
{
u8 i,dat;
dat=0;
for (i=0;i<8;i++)
{
dat<<=1;
dat|=DHT11_Read_Bit();
}
return dat;
}
//从DHT11读取一次数据
//temp:温度值(范围:0~50°)
//humi:湿度值(范围:20%~90%)
//返回值:0,正常;1,读取失败
u8 DHT11_Read_Data(u8 *temp,u8 *humi)
{
u8 buf[5];
u8 i;
DHT11_Rst();
if(DHT11_Check()==0)
{
for(i=0;i<5;i++)//读取40位数据
{
buf[i]=DHT11_Read_Byte();
}
if((buf[0]+buf[1]+buf[2]+buf[3])==buf[4])
{
*humi=buf[0];
*temp=buf[2];
}
}else return 1;
return 0;
}
//初始化DHT11的IO口 DQ 同时检测DHT11的存在
//返回1:不存在
//返回0:存在
u8 DHT11_Init(void)
{
DHT11_Rst(); //复位DHT11
return DHT11_Check();//等待DHT11的回应
}
DHT11温湿度驱动库.rar_DHT11单总线温湿度传感器单驱动库_DHT11库
版权申诉
158 浏览量
2022-09-23
04:06:45
上传
评论
收藏 2KB RAR 举报
刘良运
- 粉丝: 68
- 资源: 1万+