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精品久久香蕉国产线看观看,国产精品欧美久久
成人免费毛片高清视频| 91猫先生在线| 国产精品乱人伦中文| 91视频精品在这里| 天堂精品中文字幕在线| 精品久久久久久无| 成人av网站大全| 亚洲成人免费视频| www久久久久| 99国产精品久久久久久久久久 | 国产精品沙发午睡系列990531| 97精品久久久久中文字幕| 婷婷国产在线综合| 国产午夜精品一区二区三区嫩草 | 亚洲欧美综合网| 欧美日韩在线一区二区| 韩国精品免费视频| 亚洲精品少妇30p| 欧美大黄免费观看| 91在线视频免费91| 蜜桃91丨九色丨蝌蚪91桃色| 国产精品无码永久免费888| 欧美日韩亚洲综合在线| 国产一区二区三区免费| 伊人夜夜躁av伊人久久| 精品盗摄一区二区三区| 91成人在线精品| 国产美女久久久久| 亚洲在线一区二区三区| 久久伊人中文字幕| 欧美三片在线视频观看| 国产成人免费视频精品含羞草妖精| 亚洲一区二区精品久久av| 国产日韩一级二级三级| 欧美日韩三级视频| 本田岬高潮一区二区三区| 日本视频免费一区| 亚洲天堂网中文字| 亚洲精品一区二区三区香蕉| 精品视频在线免费观看| 成人一区二区三区| 麻豆精品一二三| 亚洲夂夂婷婷色拍ww47| 国产精品色噜噜| 日韩美一区二区三区| 91福利视频网站| 成人午夜碰碰视频| 卡一卡二国产精品 | 亚洲国产精品天堂| 国产精品乱码一区二区三区软件| 日韩欧美亚洲另类制服综合在线| 色噜噜狠狠色综合中国| 国产精品18久久久久久久网站| 首页国产丝袜综合| 亚洲精品高清在线| 国产精品美女久久久久久久久 | 精品少妇一区二区三区| 欧美日韩在线播| 色综合天天天天做夜夜夜夜做| 国产高清不卡一区二区| 乱一区二区av| 亚洲v精品v日韩v欧美v专区| 亚洲色图19p| 国产欧美精品区一区二区三区| 日韩精品一区国产麻豆| 欧美喷水一区二区| 色婷婷久久综合| 99视频精品免费视频| 国产jizzjizz一区二区| 九九国产精品视频| 蜜桃av一区二区| 日韩成人一级大片| 亚洲r级在线视频| 亚洲一区免费观看| 一区二区三区.www| 亚洲欧美另类小说| 亚洲色欲色欲www| 国产精品毛片久久久久久久| 国产亚洲1区2区3区| 久久精品亚洲乱码伦伦中文| 26uuu成人网一区二区三区| 精品国产一区二区三区不卡| 日韩欧美亚洲另类制服综合在线| 7777精品伊人久久久大香线蕉完整版 | av不卡一区二区三区| 成人av在线影院| 成人黄色片在线观看| 国产不卡视频一区| 懂色av一区二区夜夜嗨| 岛国精品在线播放| 成人91在线观看| 91碰在线视频| 色噜噜狠狠成人网p站| 色噜噜久久综合| 欧美专区在线观看一区| 欧美午夜精品免费| 欧美色手机在线观看| 欧美久久免费观看| 91精品国产入口在线| 欧美一区二区精美| 日韩精品中文字幕一区| 久久综合视频网| 久久九九国产精品| 亚洲国产精品成人久久综合一区| 中文一区二区在线观看| 自拍av一区二区三区| 亚洲一区二区三区四区在线| 亚洲电影在线播放| 日韩国产欧美在线视频| 精品夜夜嗨av一区二区三区| 国产精品资源在线观看| 成人免费视频网站在线观看| 91小宝寻花一区二区三区| 欧美性xxxxx极品少妇| 欧美日韩国产影片| 欧美电影免费观看高清完整版在 | 久久综合成人精品亚洲另类欧美| 国产欧美一区二区三区在线看蜜臀| 国产精品久久久久久久裸模| 亚洲精品免费播放| 日韩高清国产一区在线| 韩国精品在线观看| 99在线热播精品免费| 欧美视频一区二区三区在线观看| 欧美一区二区三区视频免费播放| 精品久久久三级丝袜| 国产精品免费人成网站| 亚洲精品视频一区| 免费观看日韩av| 国产.精品.日韩.另类.中文.在线.播放| 成人午夜看片网址| 欧美亚洲自拍偷拍| 日韩欧美在线1卡| 国产精品私房写真福利视频| 亚洲午夜久久久久久久久电影网| 奇米在线7777在线精品| 大白屁股一区二区视频| 91福利精品视频| 精品免费日韩av| 亚洲品质自拍视频| 日韩av在线播放中文字幕| 国产黑丝在线一区二区三区| 日本道精品一区二区三区| 日韩视频不卡中文| 成人欧美一区二区三区在线播放| 亚洲va天堂va国产va久| 国产精品18久久久久久久久 | 欧美视频一区在线| 久久久久国产精品麻豆| 一区二区三区在线观看网站| 麻豆成人久久精品二区三区红| 不卡一区在线观看| 91精品国产91久久综合桃花| 国产精品网曝门| 视频一区视频二区中文| 成人午夜私人影院| 欧美一区二区三区爱爱| 综合久久久久久| 精品制服美女久久| 在线精品国精品国产尤物884a| www一区二区| 香蕉影视欧美成人| 成人av网站免费观看| 日韩免费在线观看| 亚洲美女偷拍久久| 国产精品1区2区3区| 91精品国产一区二区三区香蕉| 国产精品美女一区二区在线观看| 蜜臀av性久久久久av蜜臀妖精 | 久久久久国产一区二区三区四区| 亚洲一区二区三区自拍| 国产91精品免费| 日韩一区二区三区三四区视频在线观看| 国产精品网曝门| 蓝色福利精品导航| 欧美视频三区在线播放| 欧美国产日韩a欧美在线观看| 日本va欧美va瓶| 欧洲精品视频在线观看| 国产精品―色哟哟| 九一九一国产精品| 欧美丰满一区二区免费视频| 中文字幕中文字幕在线一区| 精品一区二区在线观看| 欧美久久高跟鞋激| 一区二区三区在线免费播放| 成人天堂资源www在线| 精品国产欧美一区二区| 午夜不卡av在线| 色爱区综合激月婷婷| 中文子幕无线码一区tr| 精品在线视频一区| 91精品国产手机| 亚洲成a人片综合在线| 一本色道久久综合亚洲aⅴ蜜桃 | 欧美卡1卡2卡| 亚洲第一综合色| 在线精品亚洲一区二区不卡| 成人免费视频在线观看| 国产成人精品亚洲午夜麻豆|