www84811.com-国产区一区二区三区,亚洲第一中文字幕在线观看,91精品久久香蕉国产线看观看,国产精品欧美久久

電子開發(fā)網(wǎng)

電子開發(fā)網(wǎng)電子設(shè)計 | 電子開發(fā)網(wǎng)Rss 2.0 會員中心 會員注冊
搜索: 您現(xiàn)在的位置: 電子開發(fā)網(wǎng) >> 電子開發(fā) >> 單片機(jī) >> 正文

STM32(三十一)DHT11溫濕度傳感器獲取溫濕度數(shù)據(jù)

作者:佚名    文章來源:本站原創(chuàng)    點(diǎn)擊數(shù):    更新時間:2023/7/29
一、傳感器實物圖

DHT11溫濕度傳感器 

二、DHT11傳感器應(yīng)用電路圖:

DHT11傳感器應(yīng)用電路圖 

DHT11傳感器應(yīng)用電路圖 

 

 通過原理圖可知dht11通過DQ腳和STM32F407ZE06的PG9連接。通過DQ進(jìn)行數(shù)據(jù)傳輸,串行接口 (單線雙向),半雙工的工作模式。

串行接口 (單線雙向)

DATA 用于微處理器與 DHT11之間的通訊和同步,采用單總線數(shù)據(jù)格式,一次通訊時間4ms左右,數(shù)據(jù)分小數(shù)部分和整數(shù)部分,具體格式在下面說明,當(dāng)前小數(shù)部分用于以后擴(kuò)展,現(xiàn)讀出為零.操作流程如下:

  • 一次完整的數(shù)據(jù)傳輸為40bit,高位先出。
  • 數(shù)據(jù)格式:8bit濕度整數(shù)數(shù)據(jù)+8bit濕度小數(shù)數(shù)據(jù)+8bi溫度整數(shù)數(shù)據(jù)+8bit溫度小數(shù)數(shù)據(jù)+8bit校驗和
  • 數(shù)據(jù)傳送正確時校驗和數(shù)據(jù)等于“ 8bit濕度整數(shù)數(shù)據(jù)+8bit濕度小數(shù)數(shù)據(jù)+8bi溫度整數(shù)數(shù)據(jù)+8bit溫度小數(shù)數(shù)據(jù)” 所得結(jié)果的末8位。
三、數(shù)據(jù)傳輸過程

  用戶MCU發(fā)送一次開始信號后,DHT11從低功耗模式轉(zhuǎn)換到高速模式,等待主機(jī)開始信號結(jié)束后,DHT11發(fā)送響應(yīng)信號,送出40bit的數(shù)據(jù),并觸發(fā)一次信號采集,用戶可選擇讀取部分?jǐn)?shù)據(jù).從模式下,DHT11接收到開始信號觸發(fā)一次溫濕度采集,如果沒有接收到主機(jī)發(fā)送開始信號,DHT11不會主動進(jìn)行溫濕度采集.采集數(shù)據(jù)后轉(zhuǎn)換到低速模式。

   

t1~t2 至少18ms
t3~t4 20~40us
t5~t6    80us
t7~t8    80us
t9~t10    50us
t11~t12 26us~28us(表示數(shù)據(jù)0)
t13~t14    50us
t15~t16 70us(表示數(shù)據(jù)1)

(1)起始階段:主機(jī)(DQ腳PG9)主動發(fā)送至少18ms(t1-t2)的低電平(開始信號)此時PG9是輸出模式(MCU給DHT11發(fā)),保證DHT11能檢測到起始信號,DHT11檢測到起始信號后,從低功耗模式轉(zhuǎn)換為高速模式,在拉高延時等待20~40us(t3-t4),此時開始信號結(jié)束。

(2)響應(yīng)階段:DHT11檢測到起始信號后,發(fā)送80us(t5-t6)的低電平響應(yīng)(此時PG9是輸入模式,由DHT11向MCU發(fā)),在拉高延時80us(t7-t8)準(zhǔn)備輸出,此時響應(yīng)結(jié)束,準(zhǔn)備傳輸數(shù)據(jù)。

(3)數(shù)據(jù)傳輸階段:數(shù)據(jù)傳輸階段,每一bit數(shù)據(jù)都以50us低電平(t9-t10)時隙開 ,數(shù)據(jù)0和數(shù)據(jù)1的區(qū)別在與高電平的時間長短。

  數(shù)據(jù)0:26us~28us的高電平。(即只要判斷高電平的時間超過30us就是傳輸數(shù)據(jù)1,否則就是0).

  數(shù)據(jù)1:70us的的高電平。

 

 四、實驗:通過串口打印出溫濕度數(shù)據(jù)。

 

  代碼分析:有兩種方式,一種是使用精準(zhǔn)延時,還有一種就是while循環(huán)。

//dht11.c文件
#include "dht11.h" GPIO_InitTypeDef GPIO_InitStruct; u8 buff; void Dht11_Init(void) { //1.初始化時鐘 RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOG, ENABLE); //2.初始化硬件 GPIO_InitStruct.GPIO_Pin = GPIO_Pin_9;//PG9 GPIO_InitStruct.GPIO_Mode = GPIO_Mode_OUT;//輸出模式 GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;//推挽輸出 GPIO_InitStruct.GPIO_Speed = GPIO_Fast_Speed;//速度 快速 25MHz GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP;//上拉 GPIO_Init(GPIOG,&GPIO_InitStruct); } /***************傳入?yún)?shù)確定是輸出還是輸入**********************/ void pin_mode(GPIOMode_TypeDef mode) { GPIO_InitStruct.GPIO_Mode = mode;//模式切換 GPIO_Init(GPIOG,&GPIO_InitStruct);//加進(jìn)結(jié)構(gòu)體 } /******************初步配置(開始信號)**************************/ uint8_t start_dht11(void) { //1.設(shè)置為輸出模式,并且空閑狀態(tài)為高電平 pin_mode(GPIO_Mode_OUT); PGout(9)=1; delay_us(2); //2.主機(jī)拉低 至少18ms PGout(9)=0; delay_ms(20); //3.主機(jī)拉高 20-40us PGout(9)=1; delay_us(30); //4.設(shè)置為輸入模式,進(jìn)入兩個電平跳變 pin_mode(GPIO_Mode_IN); if(!PGin(9))//if(PGin(9)==0) { //檢測低到高跳變 while(!PGin(9)); //檢測高到底跳變 while(PGin(9)); return 1; } return 0; } /*********************獲取8bit數(shù)據(jù)*******************/ void get_8bit_data(void) { u8 i=0; for(i=0;i<8;i++) { buff = buff <<1; while(!PGin(9));//過濾低電平時間,確定高電平到來 delay_us(30); if(PGin(9))//如果還是高電平,數(shù)據(jù)就是1 { buff |= 0x01; } else//低電平的話,數(shù)據(jù)就是0 { buff &= 0xfe; } while(PGin(9));//過濾剩余的高電平時間 } } /****************獲取溫濕度數(shù)據(jù)*******************/ uint8_t get_dht11_data(char DataBuf[]) { if(start_dht11()) { get_8bit_data();//獲取的是濕度整數(shù) DataBuf[0] = buff; get_8bit_data();//獲取的是濕度小數(shù) DataBuf[1] = buff; get_8bit_data();//獲取的是溫度整數(shù) DataBuf[2] = buff; get_8bit_data();//獲取的是溫度小數(shù) DataBuf[3] = buff; get_8bit_data();//獲取的是校驗和 DataBuf[4] = buff; } if(DataBuf[4] == DataBuf[0]+DataBuf[1]+DataBuf[2]+DataBuf[3]) { return 1; } else return -1; }

  

//mian.c文件
#include "stm32f4xx.h"
#include "led.h"
#include "key.h"
#include "exti.h"
#include "sys.h"
#include "tim.h"
#include "pwm.h"
#include "uart.h"
#include "stdio.h"
#include "dht11.h"
uint16_t uart1_recv_data;
//重定向fputc 換個方向,此路不通,屏幕輸出不了就往串口發(fā)
//fputc fputs / fgetc fgets
int fputc(int ch,FILE *f)
{
USART_SendData(USART1,ch);
while(USART_GetFlagStatus(USART1,USART_FLAG_TXE) == RESET);
return ch;
}
//串口接收中斷
void USART1_IRQHandler(void)
{
//判斷確實進(jìn)中斷標(biāo)志
//if(USART_GetITStatus(USART1, USART_IT_RXNE) !=RESET)//==SET
if(((USART1->SR) & (0x1<<5)) !=0)//發(fā)生中斷 該為由硬件自定置1
{
//清楚中斷標(biāo)志位 往里面寫1 記住一定要清空
//USART_ClearITPendingBit(USART1,USART_IT_RXNE);//用寄存器方式自己去改
USART1->SR &= ~(0x1<<5);
uart1_recv_data = USART_ReceiveData(USART1);
} 
}
int main(void)
{
u8 ret;
char DataBuf[5] = {0};
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//NVIC 分組
SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);//滴答定時器8分頻
LED_Init();
Key_Init();
//Exti_Init();
//Tim_Init();
//Pwm_Tim14();
Uart_Init(115200);
Dht11_Init();
printf("hello uart1\r\n");
while(1)
{
ret = get_dht11_data(DataBuf);
if(ret == 1)
{
printf("溫度:%d ℃ 濕度:%d\r\n",DataBuf[2],DataBuf[0]); 
}
else
{
printf("get dht11 failed!");
}
delay_s(2);
}
return 0;
}
Tags:STM32單片機(jī),STM32,DHT11,溫濕度傳感器  
責(zé)任編輯:admin
請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
1分 2分 3分 4分 5分

還可以輸入 200 個字
[ 查看全部 ] 網(wǎng)友評論
最新推薦
關(guān)于我們 - 聯(lián)系我們 - 廣告服務(wù) - 友情鏈接 - 網(wǎng)站地圖 - 版權(quán)聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁面
下到頁底
晶體管查詢
www84811.com-国产区一区二区三区,亚洲第一中文字幕在线观看,91精品久久香蕉国产线看观看,国产精品欧美久久
精品国产成人系列| 久久看人人爽人人| 热久久一区二区| 欧美日韩不卡在线| 人人爽香蕉精品| 日韩视频免费观看高清完整版在线观看| 亚洲欧洲av在线| 色欧美片视频在线观看 | 欧美艳星brazzers| 天堂蜜桃91精品| 欧美一级国产精品| 国产一区欧美一区| 中文字幕欧美日本乱码一线二线| www.欧美精品一二区| 亚洲欧美偷拍另类a∨色屁股| 色婷婷综合久色| 午夜精品一区二区三区免费视频| 在线播放国产精品二区一二区四区| 日本在线不卡视频一二三区| 欧美成人性战久久| 国产99久久久国产精品潘金网站| 国产精品久久久一本精品| 91高清视频免费看| 日本怡春院一区二区| 久久久久久久久久久99999| 99精品国产一区二区三区不卡| 亚洲综合精品久久| 日韩你懂的在线观看| 久久国产夜色精品鲁鲁99| 国产精品欧美久久久久无广告| 欧美性生交片4| 欧美aaa在线| 国产精品灌醉下药二区| 欧美日韩欧美一区二区| 国产精品一区二区x88av| 日韩一区欧美一区| 欧美一区二区三区四区高清| 国产精品456露脸| 亚洲福中文字幕伊人影院| 欧美一区二区视频在线观看2022| 国产成人免费视频精品含羞草妖精| 亚洲精品久久7777| 欧美精品自拍偷拍| 国产成人免费视频网站| 香蕉久久夜色精品国产使用方法| 538在线一区二区精品国产| 国产成人啪免费观看软件| 亚洲成人激情av| 久久久久国产成人精品亚洲午夜 | 国v精品久久久网| 午夜视频在线观看一区| 国产婷婷精品av在线| 欧美色精品在线视频| 从欧美一区二区三区| 亚洲大片免费看| 国产日本欧美一区二区| 欧美日韩高清一区| 成人福利视频在线看| 天天做天天摸天天爽国产一区 | 欧美韩日一区二区三区| 91精品婷婷国产综合久久竹菊| 91国产视频在线观看| 波多野结衣中文字幕一区| 国产在线看一区| 日本麻豆一区二区三区视频| 亚洲伊人色欲综合网| 亚洲欧洲在线观看av| 国产拍揄自揄精品视频麻豆| 日韩欧美一级二级三级久久久| 欧美在线free| 91啪在线观看| 99视频精品在线| 丁香一区二区三区| 国产精品资源在线观看| 激情综合一区二区三区| 日韩电影一区二区三区四区| 亚洲国产精品人人做人人爽| 亚洲乱码日产精品bd| 国产精品电影一区二区| 国产精品热久久久久夜色精品三区| 久久综合色之久久综合| 欧美v日韩v国产v| 日韩欧美不卡在线观看视频| 91精品国产手机| 欧美精品久久天天躁| 91.com视频| 欧美一区二区三区婷婷月色| 日韩一级片网址| 欧美一级理论片| 日韩免费一区二区三区在线播放| 欧美一区二区三区影视| 日韩午夜三级在线| 日韩精品一区二区三区视频在线观看 | 日韩精品一区二区三区四区| 欧美成人乱码一区二区三区| 日韩精品一区二区三区中文不卡| 欧美一级欧美三级| 日韩免费观看高清完整版| 欧美videofree性高清杂交| 日韩欧美黄色影院| 精品国产一二三| 久久久久久夜精品精品免费| 国产欧美日韩综合| 一区精品在线播放| 亚洲精品大片www| 亚洲丰满少妇videoshd| 水蜜桃久久夜色精品一区的特点| 天天色图综合网| 日本亚洲三级在线| 韩国女主播一区二区三区| 国产在线视视频有精品| 丁香啪啪综合成人亚洲小说 | 欧美自拍丝袜亚洲| 欧美久久一区二区| 精品久久久久久久人人人人传媒 | 国产精品久久久久久久浪潮网站| 亚洲视频中文字幕| 亚洲成人av电影| 日韩va欧美va亚洲va久久| 久色婷婷小香蕉久久| 国产成人自拍在线| 91性感美女视频| 欧美日韩精品三区| 精品欧美久久久| 国产精品天干天干在观线| 亚洲精品自拍动漫在线| 午夜精品在线视频一区| 国内国产精品久久| 99久久精品国产一区二区三区| 欧美伊人久久大香线蕉综合69| 91精品国产欧美一区二区成人 | 精品在线观看免费| av中文字幕亚洲| 欧美日韩1区2区| 精品少妇一区二区三区视频免付费 | 国产福利91精品一区二区三区| 不卡一卡二卡三乱码免费网站| 欧美日精品一区视频| 欧美大片在线观看一区二区| 国产精品美女久久久久aⅴ国产馆| 一区二区三区四区不卡在线 | 色综合色综合色综合| 在线不卡的av| 国产精品三级在线观看| 亚洲成人综合视频| 国产一区亚洲一区| 色狠狠色狠狠综合| 51精品国自产在线| 国产精品欧美久久久久无广告 | 国产综合色视频| 色综合久久久网| 日韩欧美资源站| 亚洲欧美日韩中文字幕一区二区三区 | 欧美美女直播网站| 欧美激情综合五月色丁香小说| 亚洲国产一区二区视频| 国产精品亚洲一区二区三区妖精| 日本福利一区二区| 精品国产青草久久久久福利| 亚洲日本在线a| 久久99精品久久久久久国产越南| 99久久精品国产观看| 欧美大度的电影原声| 亚洲欧美日韩在线播放| 激情综合色丁香一区二区| 91猫先生在线| 久久奇米777| 天天操天天色综合| 成人av在线资源| 精品久久久久一区| 亚洲福利视频一区| 99久久99久久精品免费看蜜桃| 日韩欧美一区二区久久婷婷| 一二三区精品视频| 国产91丝袜在线播放九色| 欧美一区二区三区免费观看视频 | 国产精品麻豆视频| 久久99精品国产91久久来源| 91激情五月电影| 欧美高清在线精品一区| 美女网站色91| 欧美日韩国产综合一区二区三区 | 日韩一区二区免费高清| 亚洲图片欧美综合| 97se亚洲国产综合自在线不卡| 精品日韩99亚洲| 天天av天天翘天天综合网色鬼国产| a在线欧美一区| 国产日韩欧美精品一区| 秋霞影院一区二区| 精品视频在线视频| 亚洲欧美日本韩国| 成人黄色在线看| 337p粉嫩大胆色噜噜噜噜亚洲| 日韩精品亚洲专区| 欧美性色黄大片| 亚洲欧美国产77777| av高清不卡在线| 国产精品色噜噜| 国产91在线观看丝袜|