资源简介
压缩包里边包含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
相关资源
- 详细讲解柔性电子传感器和构造
- 单片机控制SHT75温湿度传感器测试
- stm32单片机IIC通讯采集sht20温湿度传感
- 基于STM32F103ZE的STH3x温湿度传感器代码
- DHT11温湿度传感器项目代码.rar
- hdc1080.pdf
- SHT30温湿度传感器程序
- STM32温湿度传感器DHT11代码,通过串口
- STM32-SHT20温湿度传感器驱动程序
- STM32F103C8T6-DHT11温湿度传感器.rar
- STM32F103--SHT30温湿度传感器
- DHT11温湿度传感器例程
- 数字温湿度传感器DHT11详解及例程利用
- stm32f103+dht11温湿度传感器例程
- 温湿度传感器DHT11资料+程序
- 乐鑫Esp8266驱动 ds18b20、dht11 温湿度传
- 基于STM32F103的温湿度SI7021程序
- CC2530+DHT11温湿度传感器+HC-SR04超声波传
- STM32+超声波传感器HC_RS04+光照传感器
- STM32F103驱动DHT22温湿度传感器、BH175
- STM32F4ZGT6控制烟雾与温湿度传感器
- DHT11数字温湿度传感器实验.rar
- STM8s读取AM2303温湿度传感器MODBUS协议
- sht20 sht30 温湿度传感器 stm8-stm32
- 温湿度传感器DHT11的Proteus仿真.zip
- STM32F103步进电机、压力传感器、温湿
- 基于STM32单片机的DHT11 温湿度传感器
- DHT11温湿度传感器串口显示,也可直接
- SHT30-31-35全套资料
- DHT22 - STM32 温湿度传感器
评论
共有 条评论