婷婷亚洲天堂影院-国产精品豆花视频www-伊人影院在线观看-日本少妇浓毛bbwbbwbbw-av网站观看-亚州欧美在线-91精品国产乱码久-任我爽精品视频在线播放-日本视频不卡-亚洲国产精品va在线观看香蕉-国产毛片乡下农村妇女-国产成人免费ā片在线观看老同学-欧美日韩免费在线-成人无码视频免费播放-色综合美女-免费毛片av

電子開發網

電子開發網電子設計 | 電子開發網Rss 2.0 會員中心 會員注冊
搜索: 您現在的位置: 電子開發網 >> 電子開發 >> 單片機 >> 正文

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

作者:佚名    文章來源:本站原創    點擊數:    更新時間:2023/7/29
一、傳感器實物圖

DHT11溫濕度傳感器 

二、DHT11傳感器應用電路圖:

DHT11傳感器應用電路圖 

DHT11傳感器應用電路圖 

 

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

串行接口 (單線雙向)

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

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

  用戶MCU發送一次開始信號后,DHT11從低功耗模式轉換到高速模式,等待主機開始信號結束后,DHT11發送響應信號,送出40bit的數據,并觸發一次信號采集,用戶可選擇讀取部分數據.從模式下,DHT11接收到開始信號觸發一次溫濕度采集,如果沒有接收到主機發送開始信號,DHT11不會主動進行溫濕度采集.采集數據后轉換到低速模式。

   

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

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

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

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

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

  數據1:70us的的高電平。

 

 四、實驗:通過串口打印出溫濕度數據。

 

  代碼分析:有兩種方式,一種是使用精準延時,還有一種就是while循環。

//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); } /***************傳入參數確定是輸出還是輸入**********************/ void pin_mode(GPIOMode_TypeDef mode) { GPIO_InitStruct.GPIO_Mode = mode;//模式切換 GPIO_Init(GPIOG,&GPIO_InitStruct);//加進結構體 } /******************初步配置(開始信號)**************************/ uint8_t start_dht11(void) { //1.設置為輸出模式,并且空閑狀態為高電平 pin_mode(GPIO_Mode_OUT); PGout(9)=1; delay_us(2); //2.主機拉低 至少18ms PGout(9)=0; delay_ms(20); //3.主機拉高 20-40us PGout(9)=1; delay_us(30); //4.設置為輸入模式,進入兩個電平跳變 pin_mode(GPIO_Mode_IN); if(!PGin(9))//if(PGin(9)==0) { //檢測低到高跳變 while(!PGin(9)); //檢測高到底跳變 while(PGin(9)); return 1; } return 0; } /*********************獲取8bit數據*******************/ 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))//如果還是高電平,數據就是1 { buff |= 0x01; } else//低電平的話,數據就是0 { buff &= 0xfe; } while(PGin(9));//過濾剩余的高電平時間 } } /****************獲取溫濕度數據*******************/ uint8_t get_dht11_data(char DataBuf[]) { if(start_dht11()) { get_8bit_data();//獲取的是濕度整數 DataBuf[0] = buff; get_8bit_data();//獲取的是濕度小數 DataBuf[1] = buff; get_8bit_data();//獲取的是溫度整數 DataBuf[2] = buff; get_8bit_data();//獲取的是溫度小數 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 換個方向,此路不通,屏幕輸出不了就往串口發
//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)
{
//判斷確實進中斷標志
//if(USART_GetITStatus(USART1, USART_IT_RXNE) !=RESET)//==SET
if(((USART1->SR) & (0x1<<5)) !=0)//發生中斷 該為由硬件自定置1
{
//清楚中斷標志位 往里面寫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單片機,STM32,DHT11,溫濕度傳感器  
責任編輯:admin
  • 上一篇文章:
  • 下一篇文章: 沒有了
  • 請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
    1分 2分 3分 4分 5分

    還可以輸入 200 個字
    [ 查看全部 ] 網友評論
    關于我們 - 聯系我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
    返回頂部
    刷新頁面
    下到頁底
    晶體管查詢
    婷婷亚洲天堂影院-国产精品豆花视频www-伊人影院在线观看-日本少妇浓毛bbwbbwbbw-av网站观看-亚州欧美在线-91精品国产乱码久-任我爽精品视频在线播放-日本视频不卡-亚洲国产精品va在线观看香蕉-国产毛片乡下农村妇女-国产成人免费ā片在线观看老同学-欧美日韩免费在线-成人无码视频免费播放-色综合美女-免费毛片av
    <button id="4i884"></button>
  • <abbr id="4i884"><source id="4i884"></source></abbr>
  • <code id="4i884"><tr id="4i884"></tr></code>
  • <rt id="4i884"></rt>
    <li id="4i884"></li>
  • <rt id="4i884"><tr id="4i884"></tr></rt>
  • 欧美少妇在线观看| 久久精品一卡二卡| 人人妻人人澡人人爽欧美一区| 手机在线看福利| 成人黄色片视频| 国产老熟妇精品观看| 日韩一二区视频| 91免费版看片| 国产精品一色哟哟| 婷婷无套内射影院| 免费看国产曰批40分钟| 欧美成人高潮一二区在线看| 国产九九九九九| 国产成人无码一二三区视频| 日韩视频免费在线播放| 99视频精品免费| 中日韩av在线播放| 六月婷婷激情网| 黄色av网址在线播放| 亚洲欧美激情网| 日本三级福利片| 18禁网站免费无遮挡无码中文| 欧美黄色免费网址| 精品少妇人妻av免费久久洗澡| 欧美女人性生活视频| 色诱视频在线观看| 欧美国产在线一区| 免费毛片网站在线观看| 国产精彩免费视频| 老司机午夜网站| 亚洲人精品午夜射精日韩| 国产熟人av一二三区| 操人视频免费看| 欧美精品久久久久久久自慰| 国产福利影院在线观看| 日本三日本三级少妇三级66| 久久精品视频16| 色偷偷中文字幕| 国产99久久九九精品无码| 99久久99精品| av免费中文字幕| www插插插无码免费视频网站| 凹凸日日摸日日碰夜夜爽1| 欧美精品 - 色网| 国产aaa一级片| 超碰超碰超碰超碰超碰| 一区二区在线免费看| 男人亚洲天堂网| 香港三级日本三级a视频| 制服丝袜中文字幕第一页| 99在线免费视频观看| 天天av天天操| 午夜视频你懂的| 日韩av中文字幕第一页| 国产精品久久成人免费观看| 成人亚洲免费视频| 久久久久久久久久久免费视频| 伊人久久在线观看| 亚洲欧美日韩不卡| 国产农村妇女精品久久| xxx国产在线观看| 黄色av免费在线播放| 免费看又黄又无码的网站| 轻点好疼好大好爽视频| 性做爰过程免费播放| 91制片厂免费观看| www激情五月| 国产精品亚洲天堂| 伊人再见免费在线观看高清版| 国产欧美综合一区| 欧美美女黄色网| 男人的天堂avav| 无码人妻精品一区二区蜜桃网站| 91成人在线视频观看| 欧美一级爱爱视频| 亚洲精品蜜桃久久久久久| 在线观看免费黄色片| 天堂av在线中文| 国产av国片精品| 无码无遮挡又大又爽又黄的视频| 激情婷婷综合网| 一级片视频免费观看| 一个色综合久久| 色男人天堂av| 人妻少妇精品无码专区二区| 日韩小视频在线播放| www.天天射.com| 亚洲天堂av一区二区三区| 91精品国产毛片武则天| 久久艹国产精品| 国产嫩草在线观看| 四虎精品欧美一区二区免费| 久久久性生活视频| 91看片破解版| 91丨porny丨探花| 激情黄色小视频| 免费人成在线观看视频播放| www.欧美日本| 欧美大黑帍在线播放| 人人爽人人av| 18禁裸男晨勃露j毛免费观看| 嫩草av久久伊人妇女超级a| 麻豆md0077饥渴少妇| 欧美日韩国产精品激情在线播放| www.久久av.com| 老熟妇仑乱视频一区二区| 欧美性受黑人性爽| 无码内射中文字幕岛国片| av动漫在线播放| 国产高潮免费视频| 欧美一区二区中文字幕| 欧洲在线免费视频| 欧美一级片中文字幕| 99re8这里只有精品| 污污的网站18| 亚洲午夜精品久久久久久人妖| 青青草原播放器| 亚洲视频第二页| 久久婷婷五月综合色国产香蕉| 91精品国产毛片武则天| 无尽裸体动漫2d在线观看| 欧美 国产 小说 另类| 欧美人成在线观看| 日日噜噜噜夜夜爽爽| 国产欧美一区二| 天天影视色综合| 最新国产黄色网址| 一级片视频免费观看| 日本久久久久久久久久久久| www.亚洲天堂网| 日本黄色三级大片| 韩国日本在线视频| 国产视频一视频二| 无码 制服 丝袜 国产 另类| 日本a在线天堂| 久久久成人精品一区二区三区| 黄色三级视频在线播放| 99国产精品久久久久久| 亚洲一区二区三区观看| 四虎成人在线播放| 蜜臀在线免费观看| 超碰人人爱人人| 国产aaa免费视频| 免费看毛片的网址| 国产成人精品视频免费看| 无码播放一区二区三区| 欧美 激情 在线| 中文字幕22页| 国产欧美综合一区| 成人黄色av片| 久久久精品麻豆| 熟女熟妇伦久久影院毛片一区二区| 特黄特黄一级片| 浮妇高潮喷白浆视频| 亚洲精品一二三四五区| 国产xxxxhd| 欧美精品自拍视频| 无限资源日本好片| 妞干网这里只有精品| 精品中文字幕av| 国内av一区二区| 僵尸世界大战2 在线播放| 国产成人综合一区| 成年人视频大全| 艹b视频在线观看| 黄色成人在线看| 久久网站免费视频| 手机在线视频一区| 久久国产乱子伦免费精品| 亚洲一级片av| 国产精品丝袜久久久久久消防器材| 一级黄色特级片| 成人在线播放网址| 日韩欧美亚洲另类| 18禁免费无码无遮挡不卡网站| xxx国产在线观看| av免费中文字幕| 丰满人妻一区二区三区53号| 另类小说第一页| 黄色一级片播放| 欧美黄网在线观看| 色乱码一区二区三区在线| 久久国产成人精品国产成人亚洲| 三级黄色片免费看| 中文字幕欧美人妻精品一区| 国产va亚洲va在线va| 久久最新免费视频| 伊人色在线视频| 成人性视频欧美一区二区三区| 国产精品无码人妻一区二区在线| 欧美性视频在线播放| 中文字幕永久有效| 五月天激情视频在线观看| www.亚洲天堂网| 免费观看成人网| 国产精品97在线| 男人日女人bb视频| 91黄色小网站| 久久精品免费网站| 色婷婷综合久久久久中文字幕|