久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5025|回復: 0
收起左側(cè)

基于STM32F103的DHT11完美配置例程

[復制鏈接]
ID:763998 發(fā)表于 2020-6-3 21:03 | 顯示全部樓層 |閱讀模式
DHT11頭文件:
#ifndef _DHT11_H_
#define _DHT11_H_

#include "stm32f10x.h"
#include "bitband_cm3.h" // 位帶操作頭文件

#define DHT11_REV_DATA  PBin(6)
#define DHT11_SEND_DATA PBout(6)

void DHT11_Init(void);
int DHT11_Read_Data(uint8_t *Temp_H,uint8_t* Temp_L,uint8_t* RH_H,uint8_t* RH_L);



#endif



DHT11源文件:
#include "dht11.h"
#include "systick.h"
#if 0  //0---庫函數(shù)  1---寄存器
// DTH11  ---> PB6
// 輸出模式
void DHT11_OUT(void)
{
  GPIOB->CRL &=~ (0xf<<24);
        GPIOB->CRL |=  (3<<24);//通用推挽輸出模式 50M
}

// 輸入模式
void DHT11_IN(void)  
{
        GPIOB->CRL &=~ (0xf<<24);
        GPIOB->CRL |=  (4<<24);//配置浮空輸入(外接上拉電阻)
}

//DHT11初始化
void DHT11_Init(void)
{
        RCC->APB2ENR |= (1<<3); // 開啟PB端口時鐘
        DHT11_IN( );// DHT11 的DATA 引腳處于輸入狀態(tài),時刻檢測外部信號
        delay_ms(500);
        delay_ms(500);//DHT11 上電后要等待 1S 以越過不穩(wěn)定狀態(tài)在此期間不能發(fā)送任何指令
}
#else
// DTH11  ---> PB6
// 輸出模式
void DHT11_OUT(void)
{
        GPIO_InitTypeDef GPIO_InitStruct;
        GPIO_InitStruct.GPIO_Pin=GPIO_Pin_6;
        GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;//通用推挽輸出
        GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;//50M
        GPIO_Init(GPIOB, &GPIO_InitStruct);//PB6
}

// 輸入模式
void DHT11_IN(void)  
{
        GPIO_InitTypeDef GPIO_InitStruct;
        GPIO_InitStruct.GPIO_Pin=GPIO_Pin_6;
        GPIO_InitStruct.GPIO_Mode=GPIO_Mode_IN_FLOATING;//配置浮空輸入(外接上拉電阻)
        GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;//50M
        GPIO_Init(GPIOB, &GPIO_InitStruct);//PB6
}

//DHT11初始化
void DHT11_Init(void)
{
        RCC->APB2ENR |= (1<<3); // 開啟PB端口時鐘
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//開啟PB端口時鐘.
        DHT11_IN( );// DHT11 的DATA 引腳處于輸入狀態(tài),時刻檢測外部信號
        delay_ms(500);
        delay_ms(500);//DHT11 上電后要等待 1S 以越過不穩(wěn)定狀態(tài)在此期間不能發(fā)送任何指令
}
#endif
//起始信號
void DHT11_Start(void)
{
        DHT11_SEND_DATA=0;
        delay_ms(18);
        DHT11_SEND_DATA=1;
        delay_us(20);//釋放總線
}

//應答信號
//返回值 0--無應答  1--有應答
u8 DHT11_Ack(void)
{
        if(DHT11_REV_DATA!=0)
        {
                return 0;
        }
        while(DHT11_REV_DATA==0);//等待80us低電平應答結(jié)束
       
        while(DHT11_REV_DATA==1);//等待80us高電平應答結(jié)束
       
        return 1;
}

//讀取一個字節(jié)數(shù)據(jù)
u8 DHT11_Read_Byte(void)
{
        u8 data=0;
        u8 i;
        //接受數(shù)據(jù),每個數(shù)據(jù)以50us低電平開始
        for(i=0;i<8;i++)
        {
                data <<= 1;
                while(!DHT11_REV_DATA);//等待發(fā)送數(shù)據(jù)的時序變?yōu)楦唠娖?
                delay_us(40);//23~27u為數(shù)據(jù)0,68~74us為u數(shù)據(jù)1
                if(DHT11_REV_DATA==1)
                {
                        data |=1;//數(shù)據(jù)1
                        while(DHT11_REV_DATA);//等待高電平應答結(jié)束
                }
        }
        return data;
}

//讀取溫濕度
int DHT11_Read_Data(u8 *Temp_H,u8* Temp_L,u8* RH_H,u8* RH_L)
{
        u8 check;
        DHT11_OUT( );
        DHT11_Start( );
        DHT11_IN( );//切換為輸入
        if( DHT11_Ack( )==0 )
        {
                return -1;
        }
       
        //讀取數(shù)據(jù)
        *RH_H=DHT11_Read_Byte( );
        *RH_L=DHT11_Read_Byte( );
        *Temp_H=DHT11_Read_Byte( );
        *Temp_L=DHT11_Read_Byte( );
        check=DHT11_Read_Byte( );       
       
        //結(jié)束讀取
        delay_ms(50);
        DHT11_OUT( );//切換為輸出
        DHT11_SEND_DATA=1;//釋放總線
       
        //校驗數(shù)據(jù)
        if(check !=(*Temp_H+*Temp_L+*RH_H+*RH_L) )
        {
                return -2;
        }
        return 0;
}

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产一区二区三区色淫影院 | 91成人在线| 亚洲欧美一区二区三区在线 | 日韩一区二| 久久国产精品免费一区二区三区 | 亚洲 欧美 另类 日韩 | wwwxxx日本在线观看 | 中文字幕在线一区二区三区 | 国产在线一区二区 | 欧美乱码精品一区二区三区 | 91在线精品视频 | 日本三级全黄三级三级三级口周 | 9久久| 日本人和亚洲人zjzjhd | 91精品久久久久 | 一区二区免费在线观看 | 国产美女在线观看 | 精品国产乱码久久久久久蜜柚 | 中文字幕在线观看国产 | 国产精品乱码一二三区的特点 | 97久久精品| 天堂在线www | 成人免费精品视频 | 黄在线 | 欧美一区二区三区在线 | 成人精品在线视频 | 午夜精品一区二区三区在线 | 最近中文字幕免费 | 欧美999| 中文字幕一区二区三区精彩视频 | 亚洲国产成人精品久久 | 鸳鸯谱在线观看高清 | 视频一区二区国产 | 九一在线 | 国产高清在线 | 福利精品在线观看 | 一本色道精品久久一区二区三区 | 色婷婷av一区二区三区软件 | 亚洲国产一区二区三区四区 | 亚洲va在线va天堂va狼色在线 | 国产精品国产三级国产aⅴ中文 |