色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

STM32F407開發(fā)板DS18B20應用案例

DS小龍哥-嵌入式技術 ? 來源:DS小龍哥-嵌入式技術 ? 作者:DS小龍哥-嵌入式技 ? 2023-07-06 14:35 ? 次閱讀

【1】DS18B20介紹

DS18B20是一種數(shù)字溫度傳感器,由Maxim Integrated公司生產(chǎn)。它采用單總線接口,能夠在廣泛的溫度范圍內(nèi)測量溫度,并通過數(shù)字方式輸出溫度值,具有較高的精度和穩(wěn)定性。

以下是DS18B20溫度傳感器的主要特點和操作時序:

(1)特點:

  • 單總線接口:DS18B20使用單一的數(shù)據(jù)線進行通信,簡化了連接和控制。
  • 高精度測量:具有12位的溫度分辨率,可測量范圍為-55°C至+125°C。
  • 數(shù)字輸出:溫度值以二進制形式傳輸,便于處理和解析。
  • 內(nèi)部存儲:傳感器可內(nèi)部存儲溫度數(shù)據(jù)和配置信息
  • 低功耗:在非活動狀態(tài)下,傳感器可以進入睡眠模式以降低功耗消耗。

(2)操作時序: DS18B20的操作時序包括復位、寫入指令、讀取溫度等過程。下面是DS18B20的基本操作時序:

a. 復位:

  • 主機拉低數(shù)據(jù)線,持續(xù)至少480μs作為復位信號
  • 主機釋放數(shù)據(jù)線,等待15μs以上。

b. 發(fā)送指令:

  • 主機發(fā)出寫入指令(如跳過ROM指令或匹配ROM指令)。
  • 指令由主機通過數(shù)據(jù)線逐位發(fā)送,每位的有效時間為60μs。

c. 讀取溫度:

  • 主機發(fā)出讀取溫度指令。
  • 傳感器將溫度數(shù)據(jù)以序列的形式發(fā)送給主機,每位的有效時間為60μs。
  • 主機在接收到所有數(shù)據(jù)后,需提供適當?shù)难舆t時間進行解析和處理。

【2】硬件連線說明

STM32F407開發(fā)板DS18B20應用案例

開發(fā)板硬件連接:

img

img

【3】源代碼

在工程中添加ds18b20.c和ds18b20.h文件。

DS18B20代碼如下:

#include "ds18b20.h"
 ?
 /*
 函數(shù)功能:DS18b20IO口初始化
 硬件連接:PG9
 復用表示自動輸出數(shù)據(jù)
 通用表示手動輸出數(shù)據(jù)
 */
 void DS18B20_Init(void)
 {
 /*1. 開時鐘*/
   RCC- >AHB1ENR|=1< 6;//使能PORTG時鐘
 
 /*2. 初始化IO模式*/
 DS18B20_OUTPUT();
 }
 ?
 ?
 /*
 函數(shù)功能:等待DS18B20的回應
 返回1:未檢測到DS18B20的存在
 返回0:存在
 */
 u8 DS18B20_Check(void)    
 {   
 u8 retry=0;
 DS18B20_INPUT()   //設置DS18B20輸入模式
   while(DS18B20_IN&&retry< 200)
 {
 retry++;
 DelayUs(1);
 }; 
 if(retry >=200)return 1;
 else retry=0;
   while(!DS18B20_IN&&retry< 240)
 {
 retry++;
 DelayUs(1);
 };
 if(retry >=240)return 1;    
 return 0;
 }
 ?
 ?
 /*
 從DS18B20讀取一個字節(jié)
 返回值:讀到的數(shù)據(jù)
 */
 u8 DS18B20_ReadByte(void)
 {        
 u8 i,data=0;
 for(i=0;i< 8;i++) 
 {
 DS18B20_OUTPUT();  //初始化為輸出模式
 DS18B20_OUT=0; //輸出0 
 DelayUs(2);        
 DS18B20_OUT=1;     //上拉總線電平
 DS18B20_INPUT()    //初始化為輸入模式
 DelayUs(12);
   data >>=1;
 if(DS18B20_IN)
 {
 data|=0x80; 
 }
 DelayUs(50);
 }    
   return data;
 }
 ?
 ?
 /*
 寫一個字節(jié)到DS18B20
 dat:要寫入的字節(jié)
 */
 void DS18B20_WriteByte(u8 dat)     
  {             
 u8 i;
 DS18B20_OUTPUT(); //初始化IO為輸出模式
 for(i=0;i< 8;i++) 
 {
 if(dat&0x01) //先發(fā)低位
 {
 DS18B20_OUT=0;//輸出0
 DelayUs(2);                            
 DS18B20_OUT=1;//輸出1
 DelayUs(60);             
 }
 else 
 {
 DS18B20_OUT=0;//輸出0
 DelayUs(60);             
 DS18B20_OUT=1;//輸出1
 DelayUs(2);                          
 }
 dat >>=1;
  }
 }
 ?
 ?
 /*
 從ds18b20得到溫度值
 精度:0.1C
 返回值:溫度值 (-550~1250) 
 */
 short DS18B20_Get_Temp(void)
 {
 u16 temp;
 u8 TL,TH;
 DS18B20_OUTPUT(); 
     DS18B20_OUT=0;//輸出0 //拉低DQ
     DelayUs(750);     //拉低750us
     DS18B20_OUT=1;    //輸出1 //DQ=1 
 DelayUs(15);      //15US  
 
     DS18B20_Check(); 
     DS18B20_WriteByte(0xcc); //跳過芯片ID檢測
     DS18B20_WriteByte(0x44); //轉(zhuǎn)換一次溫度
 
     DS18B20_OUTPUT(); 
     DS18B20_OUT=0;   //輸出0 //拉低DQ
     DelayUs(750);    //拉低750us
     DS18B20_OUT=1; //輸出1 //DQ=1 
     DelayUs(15);     //15US
     DS18B20_Check(); 
 
     DS18B20_WriteByte(0xcc);// 跳過芯片ID檢測
     DS18B20_WriteByte(0xbe);// 讀取轉(zhuǎn)換成功的溫度數(shù)據(jù)
     TL=DS18B20_ReadByte();  // LSB   
     TH=DS18B20_ReadByte();  // MSB  
     temp=((u16)TH< 8)|TL;
 return temp;
 }
 ?
 ?

Ds18b20.h代碼示例

#ifndef _DS18B20_H
 #define _DS18B20_H
 #include "stm32f4xx.h"
 ?
 #include "sys.h"
 #include "delay.h"
 void DS18B20_Init(void);
 short DS18B20_Get_Temp(void);
 #define DS18B20_IN PGin(9)
 #define DS18B20_OUT PGout(9)
 ?
 #define DS18B20_INPUT()  \\
 {\\
 GPIOG- >MODER&=~(0x3< MODER|=0x0< PUPDR&=~(0x3< PUPDR|=0x1< 
 
 #define DS18B20_OUTPUT() \\
 {\\
  GPIOG- >MODER&=~(0x3< MODER|=0x1< OTYPER&=~(0x1< OSPEEDR&=~(0x3< OSPEEDR|=0x2< ODR|=1< 
 #endif
 ?

Main.c文件示例

#include "stm32f4xx.h" // Device header
 #include "led.h"
 #include "delay.h"
 #include "key.h"
 #include "usart.h"
 #include "sys.h"
 #include "exti.h"
 #include "timer.h"
 #include "pwm.h"
 #include "ds18b20.h"
 ?
 int main(void)
 {
 short temp;
 unsigned short intT,decT;   //溫度值的整數(shù)和小數(shù)部分
 LED_Init();
 KEY_Init();
 USART1_Init(84,115200);
 KEY_EXTI_Init();
 DS18B20_Init();
   while(1)
 {
   /*讀取溫度信息*/
 temp=DS18B20_Get_Temp();
 intT = temp > > 4;             //分離出溫度值整數(shù)部分
 decT = temp & 0xF;            //分離出溫度值小數(shù)部分
 printf("DS18B20: %d.%d *C\\r\\n",(int)intT,(int)decT);
 DelayMs(1000);
 }
 }
 ?
 ?

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 傳感器
    +關注

    關注

    2550

    文章

    51056

    瀏覽量

    753245
  • DS18B20
    +關注

    關注

    10

    文章

    779

    瀏覽量

    80832
  • 開發(fā)板
    +關注

    關注

    25

    文章

    5038

    瀏覽量

    97398
  • STM32F407
    +關注

    關注

    15

    文章

    187

    瀏覽量

    29446
收藏 人收藏

    評論

    相關推薦

    [MicroPython]stm32f407控制DS18B20檢測溫度

    元器件 F407Micropython開發(fā)板1塊 數(shù)據(jù)線1條 DS18b20溫度傳感器1個 DS18B20測溫模塊(不含DS18B20)1個
    發(fā)表于 08-13 16:42

    stm32f407+DS18B20讀出的溫度顯示在TFT屏幕上

    stm32f407 + DS18B20 碰出不一樣的火花,DS18B20相關知識以及單總線協(xié)議。 最后將讀出的溫度顯示在 TFT 屏幕上。
    發(fā)表于 08-24 06:34

    STM32F407靈致開發(fā)板攝像頭SRAM應用例程說明

    STM32F407靈致開發(fā)板攝像頭SRAM應用例程說明
    發(fā)表于 12-22 18:11 ?32次下載

    STM32F407 開發(fā)板原理圖

    STM32F407 開發(fā)板原理圖
    發(fā)表于 09-22 16:12 ?393次下載
    <b class='flag-5'>STM32F407</b> <b class='flag-5'>開發(fā)板</b>原理圖

    星翼電子:探索者STM32F407開發(fā)板資源詳細列表

    星翼電子:探索者STM32F407開發(fā)板資源詳細列表
    的頭像 發(fā)表于 10-15 09:51 ?3983次閱讀
    星翼電子:探索者<b class='flag-5'>STM32F407</b><b class='flag-5'>開發(fā)板</b>資源詳細列表

    STM32F407開發(fā)板的光盤資料合集免費下載

    本文檔的主要內(nèi)容詳細介紹的是STM32F407開發(fā)板的光盤資料合集免費下載。
    發(fā)表于 12-30 08:00 ?56次下載
    <b class='flag-5'>STM32F407</b><b class='flag-5'>開發(fā)板</b>的光盤資料合集免費下載

    STM32F407開發(fā)板的電路原理圖免費下載

    本文檔的主要內(nèi)容詳細介紹的是STM32F407開發(fā)板的電路原理圖免費下載。
    發(fā)表于 11-06 08:00 ?205次下載
    <b class='flag-5'>STM32F407</b><b class='flag-5'>開發(fā)板</b>的電路原理圖免費下載

    STM32F407開發(fā)板用戶手冊】第13章 STM32F407啟動過程詳解

    STM32F407開發(fā)板用戶手冊】第13章 STM32F407啟動過程詳解
    發(fā)表于 11-23 18:06 ?73次下載
    【<b class='flag-5'>STM32F407</b><b class='flag-5'>開發(fā)板</b>用戶手冊】第13章 <b class='flag-5'>STM32F407</b>啟動過程詳解

    STM32F407開發(fā)板用戶手冊】第14章 STM32F407的電源,復位和時鐘系統(tǒng)

    STM32F407開發(fā)板用戶手冊】第14章 STM32F407的電源,復位和時鐘系統(tǒng)
    發(fā)表于 12-02 16:21 ?42次下載
    【<b class='flag-5'>STM32F407</b><b class='flag-5'>開發(fā)板</b>用戶手冊】第14章 <b class='flag-5'>STM32F407</b>的電源,復位和時鐘系統(tǒng)

    STM32F407開發(fā)板用戶手冊】第1章?? 初學STM32F407的準備工作

    STM32F407開發(fā)板用戶手冊】第1章?? 初學STM32F407的準備工作
    發(fā)表于 12-04 13:36 ?75次下載
    【<b class='flag-5'>STM32F407</b><b class='flag-5'>開發(fā)板</b>用戶手冊】第1章?? 初學<b class='flag-5'>STM32F407</b>的準備工作

    STM32F407開發(fā)板用戶手冊】第21章 STM32F407的NVIC中斷分組和配置(重要)

    STM32F407開發(fā)板用戶手冊】第21章 STM32F407的NVIC中斷分組和配置(重要)
    發(fā)表于 12-04 13:51 ?21次下載
    【<b class='flag-5'>STM32F407</b><b class='flag-5'>開發(fā)板</b>用戶手冊】第21章 <b class='flag-5'>STM32F407</b>的NVIC中斷分組和配置(重要)

    STM32F407開發(fā)板用戶手冊】第8章 STM32F407的終極調(diào)試組件Event Recorder

    STM32F407開發(fā)板用戶手冊】第8章 STM32F407的終極調(diào)試組件Event Recorder
    發(fā)表于 12-04 14:21 ?19次下載
    【<b class='flag-5'>STM32F407</b><b class='flag-5'>開發(fā)板</b>用戶手冊】第8章 <b class='flag-5'>STM32F407</b>的終極調(diào)試組件Event Recorder

    STM32F407開發(fā)板用戶手冊】第19章 STM32F407的GPIO應用之按鍵FIFO

    STM32F407開發(fā)板用戶手冊】第19章 STM32F407的GPIO應用之按鍵FIFO
    發(fā)表于 12-05 15:21 ?39次下載
    【<b class='flag-5'>STM32F407</b><b class='flag-5'>開發(fā)板</b>用戶手冊】第19章 <b class='flag-5'>STM32F407</b>的GPIO應用之按鍵FIFO

    STM32F407開發(fā)板原理圖下載

    STM32F407 開發(fā)板原理圖,有興趣的同學可以參考!
    發(fā)表于 04-29 17:09 ?62次下載

    STM32F407入門開發(fā): DS18B20溫度傳感器應用

    DS18B20是數(shù)字溫度傳感器,單總線接口,讀取溫度只需要一個IO口,還有不同的封裝形式,支持不同的環(huán)境。每個DS18B20還有64位的光刻ROM序列號,支持一個IO口上掛載多個DS18B20時,區(qū)分設備,也就是支持級聯(lián),非常方
    的頭像 發(fā)表于 05-28 13:41 ?6242次閱讀
    <b class='flag-5'>STM32F407</b>入門<b class='flag-5'>開發(fā)</b>: <b class='flag-5'>DS18B20</b>溫度傳感器應用
    主站蜘蛛池模板: 欧美日韩亚洲综合2019| 漂亮的保姆5电影免费观看完整版中文| 精品国产国产综合精品| 久久精品视频91| 暖暖日本大全免费观看| 日本久久高清视频| 国产精品无码麻豆放荡AV| 国产亚洲精品久久久久久白晶晶| 九九色精品国偷自产视频| 免费韩伦影院在线观看| 日韩亚洲国产欧美免费观看| 亚洲国产精品嫩草影院久久| 6080yy亚洲久久无码| 俄罗斯videosbest8| 娇小8一12xxxx第一次| 欧美另类一区| 亚洲国产果果在线播放在线| 91精品免费久久久久久久久| 国产成人精品久久一区二区三区| 久久4k岛国高清一区二区| 青草在线观看视频| 亚洲国产AV无码综合在线 | 西西人体大胆牲交PP6777| 伊人久久影院大香线蕉| 菠萝视频高清版在线观看| 精品AV国产一区二区三区| 秋霞电影在线观看午夜伦| 亚洲中文在线偷拍| 成人国产AV精品久久久久| 久久AV国产麻豆HD真实| 三级黄色小视频| 中文字幕亚洲无线码高清不卡| 国产福利不卡在线视频| 免费精品国偷自产在线| 亚洲AV无码专区国产乱码网站 | 艳鉧动漫片1~6全集在线| YELLOW日本免费观看播放| 精品国产乱码久久久久久人妻| 日本理伦片午夜理伦片| 有人在线观看的视频吗免费| 国产A级毛片久久久久久久|