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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 20126|回復: 1
打印 上一主題 下一主題
收起左側

stm32驅動DHT11溫濕度傳感器的一些問題解決

[復制鏈接]
跳轉到指定樓層
樓主
ID:245368 發表于 2017-11-2 16:30 來自手機 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
使用串行接口(單線雙向)

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

    數據格式:8bit濕度整數數據+8bit濕度小數數據
        +8bi溫度整數數據+8bit溫度小數數據
        +8bit校驗和
數據傳送正確時校驗和數據等于“ 8bit濕度整數數據+8bit濕度小數數據
+8bi溫度整數數據+8bit溫度小數數據” 所得結果的末8位。

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


總線空閑狀態為高電平,主機把總線拉低等待DHT11響應,主機把總線拉低必
須大于18毫秒,保證DHT11能檢測到起始信號。 DHT11接收到主機的開始信號后,
等待主機開始信號結束,然后發送80us低電平響應信號.主機發送開始信號結束
后,延時等待20-40us后, 讀取DHT11的響應信號,主機發送開始信號后,可以切換
到輸入模式,或者輸出高電平均可, 總線由上拉電阻拉高


總線為低電平,說明DHT11發送響應信號,DHT11發送響應信號后,再把總線拉
高80us,準備發送數據,每一bit數據都以50us低電平時隙開始,高電平的長短定
了數據位是0還是1.格式見下面圖示.如果讀取響應信號為高電平,則DHT11沒有
響應,請檢查線路是否連接正常.當最后一bit數據傳送完畢后, DHT11拉低總線
50us,隨后總線由上拉電阻拉高進入空閑狀態。
數據0表示


數據1表示


波特率

9600
問題

一個引腳輸入模式的變換?
使用兩個不同的函數,一個函數將引腳設置為輸入模式,一個函數將引腳設置為輸出模式,注意不要忘了時鐘使能。
輸入和輸出初始化的時候不一樣,這是HAL庫不同于標準庫的一個地方
    輸入
          /*Configure GPIO pin : PC1 */
          GPIO_InitStruct.Pin = GPIO_PIN_1;
          GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
          GPIO_InitStruct.Pull = GPIO_PULLUP;            //上拉模式
          HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
    輸出
          /*Configure GPIO pin : PC0 */
          GPIO_InitStruct.Pin = GPIO_PIN_0;
          GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;      //輸出要由推挽輸出
          GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
          HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
如何將讀取到的0和1變成八位二進制數?
    主要步驟,左移和取和
        delay_us(30);
        temp = temp << 1;

    temp |=1;
另一個問題
    讀到此時高低電平后,要等待相應的時間,判斷是0還是1,
剩下的問題就是輸出初始化了,只需要使用相應的延時函數,延時需要的時間即可。
最終結果

評分

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

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:159063 發表于 2020-5-17 05:56 來自手機 | 只看該作者
補充一句:VDD電壓為3.5V-5.5V,用STM32的3.3V電源無法驅動的,測試發現DST11
回復

使用道具 舉報

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

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一区二区三 | 好姑娘影视在线观看高清 | 久久久国产网站 | 怡红院怡春院一级毛片 | 手机看片在线播放 | 国产乱码精品一区二区三区忘忧草 | 欧美精品综合在线 | 欧美午夜精品 | av中文字幕在线 | 国产高清免费视频 | 亚洲三级在线观看 | 欧美精品久久久久久久久久 | 亚洲 欧美 精品 | 日操操夜操操 | 婷婷开心激情综合五月天 | 欧美电影免费观看高清 | 在线观看欧美日韩视频 | 在线久草 | 国产精品揄拍一区二区 | 国产日韩欧美 | 97久久精品午夜一区二区 | 精品国产三级 | 一区二区三区国产好 | 久久精品国产亚洲 | 色综合久久88色综合天天 | 成人午夜免费视频 | 免费av在线 | 精品在线观看入口 | 99re| 欧州一区二区三区 | 中文字幕亚洲精品在线观看 | 久久精品电影 | 中文字幕一区二区三区日韩精品 | 欧美不卡一区二区 | 狠狠干影院 | 视频一区二区在线观看 | 日韩一区二区免费视频 | 精品久久久久久久久久久 | 999久久久久久久久6666 | 欧美久久久久久 | 中文字幕精品一区久久久久 |