91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

壓縮包里邊包含DHT11.C和DHT11.H文件,里邊封裝了DHT11的驅(qū)動程序,可在STM32中快速移植.

資源截圖

代碼片段和文件信息

#include?“stm32f10x.h“??????????????????//?Device?header
#include?“dht11.h“
/*******************************************************************************
*?函?數(shù)?名?????????:?DHT11_Init()
*?函數(shù)功能 ?????:?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();
}
/*******************************************************************************
*?函?數(shù)?名?????????:?DHT11_Rst(),DHT11_Check()?
*?函數(shù)功能 ?????:?復(fù)位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)//高電平循環(huán),低電平跳出
{
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;
}


/*******************************************************************************
*?函?數(shù)?名?????????:?DHT11_Read_Bit(void)?
*?函數(shù)功能 ?????:?從DHT11讀取一個位
*?引????腳?????????:?PA4
*?輸????出?????????:返回值:1/0
*******************************************************************************/
u8?DHT11_Read_Bit(void)? ?
{
? u8?retry=0;
while(DHT11_DQ_IN&&retry<100)//等待變?yōu)榈碗娖?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; ???
}
/*******************************************************************************
*?函?數(shù)?名?????????:?DHT11_Read_Byte(void)
*?函數(shù)功能 ?????:?從DHT11讀取一個字節(jié)
*?引????腳?????????:?PA4
*?輸????出?????????:返回值:讀到的數(shù)據(jù)
*******************************************************************************/
u8?DHT11_Read_Byte(void)????
{????????
????u8?idat;
????dat=0;
for?(i=0;i<8;i++)?
{
??? dat<<=1;?
????dat|=DHT11_Read_Bit();
????} ????
????return?dat;
}
/*******************************************************************************
*?函?數(shù)?名?????????:?DHT11_Read_Data(u8?*tempu8?*humi)?
*?函數(shù)功能 ?????:?從DHT11讀取一次數(shù)據(jù)
*?引????腳?????????:?PA4
*?輸????出?????????:返回值:0正常;1讀取失敗
*******************************************************************************/
u8?

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????4051??2019-02-18?17:19??dht11.c
?????文件?????????448??2019-02-18?13:12??dht11.h

評論

共有 條評論