资源简介
压缩包里边包含DHT11.C和DHT11.H文件,里边封装了DHT11的驱动程序,可在STM32中快速移植.
代码片段和文件信息
#include “stm32f10x.h“ // Device header
#include “dht11.h“
/*******************************************************************************
* 函 数 名 : DHT11_Init()
* 函数功能 : DHT11初始化
* 引 脚 : PA4
* 输 出 : 返回0:初始化成功,1:失败
*******************************************************************************/
u8 DHT11_Init()
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOAENABLE);
GPIO_InitStructure.GPIO_Pin=DHT11;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIO_DHT11&GPIO_InitStructure);
GPIO_SetBits(GPIO_DHT11DHT11); //拉高
DHT11_Rst();
return DHT11_Check();
}
/*******************************************************************************
* 函 数 名 : DHT11_Rst(),DHT11_Check()
* 函数功能 : 复位DHT11,检测DHT11
* 引 脚 : PA4
* 输 出 ://返回1:未检测到DHT11的存在,返回0:存在
*******************************************************************************/
void DHT11_Rst()
{
DHT11_IO_OUT(); //配置io口为输出模式
DHT11_DQ_OUT=0; //拉低DQ
delay_ms(20); //拉低至少18ms
DHT11_DQ_OUT=1; //DQ=1
delay_us(30); //主机拉高20~40us
}
u8 DHT11_Check()
{
u8 retry=0;
DHT11_IO_IN();//配置io口为输入模式
while (DHT11_DQ_IN&&retry<100)//高电平循环,低电平跳出
{
retry++;
delay_us(1);
};
if(retry>=100)return 1;
else retry=0;
while (!DHT11_DQ_IN&&retry<100)//DHT11拉低后会再次拉高40~50us
{
retry++;
delay_us(1);
};
if(retry>=100)return 1;
return 0;
}
/*******************************************************************************
* 函 数 名 : DHT11_Read_Bit(void)
* 函数功能 : 从DHT11读取一个位
* 引 脚 : PA4
* 输 出 :返回值:1/0
*******************************************************************************/
u8 DHT11_Read_Bit(void)
{
u8 retry=0;
while(DHT11_DQ_IN&&retry<100)//等待变为低电平 12-14us 开始
{
retry++;
delay_us(1);
}
retry=0;
while(!DHT11_DQ_IN&&retry<100)//等待变高电平 26-28us表示0116-118us表示1
{
retry++;
delay_us(1);
}
delay_us(40);//等待40us
if(DHT11_DQ_IN)return 1;
else return 0;
}
/*******************************************************************************
* 函 数 名 : DHT11_Read_Byte(void)
* 函数功能 : 从DHT11读取一个字节
* 引 脚 : PA4
* 输 出 :返回值:读到的数据
*******************************************************************************/
u8 DHT11_Read_Byte(void)
{
u8 idat;
dat=0;
for (i=0;i<8;i++)
{
dat<<=1;
dat|=DHT11_Read_Bit();
}
return dat;
}
/*******************************************************************************
* 函 数 名 : DHT11_Read_Data(u8 *tempu8 *humi)
* 函数功能 : 从DHT11读取一次数据
* 引 脚 : PA4
* 输 出 :返回值:0正常;1读取失败
*******************************************************************************/
u8
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4051 2019-02-18 17:19 dht11.c
文件 448 2019-02-18 13:12 dht11.h
相关资源
- C51_温湿度传感器DHT11驱动_LCD1602显示程
- 基于STM8的温湿度传感器DHT11驱动代码
- 51单片机DHT11温湿度传感器12864显示
- DHT11温湿度传感器 资料
- DHT11程序液晶1602显示湿度和温度
- 基于Atmega16湿度传感器源代码
- am2301 温湿度传感器程序
- DSP28335控制DHT11温湿度传感器
- 基于MC9S12XS128的温湿度传感器DHT11程序
- SHT20温湿度传感器程序gpio模拟I2C+中文
- hdc1080_drive.rar
- SHT20温湿度传感器英文数据手册。内含
- SHT20温湿度传感器
- ATH15调试 - 20190528 - SHERAUPLOAD.rar
- 温湿度传感器DHT11数字(附1602显示程
- Arduino uno+esp8266+onenet+dht11温湿度传感器
- 基于STM32F103ZET DHT11 温湿度传感器程序
- SHT11 温湿度传感器 STM32驱动
- MSP430G2553驱动DHT11温湿度传感器
- Arduino-DHT11温湿度传感器库文件
- 基于STM32F103的SHT11温湿度传感器采集程
- SHT11温湿度传感器仿真
- STM32F103读SHT31温湿度传感器代码,实测
- 温湿度传感器DHT11+1602显示+串口
- 温湿度传感器DHT11在mini2440上基于lin
- STC15+AHT10温湿度传感器+LCD12864.rar
- 基于STM32F4的DHT11温湿度传感器的源代
- DHT11库文件和
- STC15F2K60S2读取DHT11温湿度传感器数据串
- DHT11温湿度传感器MSP430F149)
评论
共有 条评论