国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

DS18B20-STM32溫度讀取

這篇具有很好參考價值的文章主要介紹了DS18B20-STM32溫度讀取。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

command

DS18B20-STM32溫度讀取

data

DS18B20-STM32溫度讀取
高地位組合即為溫度數(shù)據(jù)

1. 初始化時鐘

DS18B20-STM32溫度讀取

void Init_DS18B20(void) 
{
	 
  char  CY = 1;
    while (CY)
    {
		DQ_OUT();
	  DQ_SET_H(); 
	  delay_us(20); 
        DQ_SET_L();                     //送出低電平復(fù)位信號
        delay_us(360);              //延時至少480us
        delay_us(240);
        DQ_SET_H();                    //釋放數(shù)據(jù)線
        delay_us(50);               //等待60us
        DQ_IN();
		CY = DQ_READ();                    //檢測存在脈沖
 
		 delay_us(240); 
    } 
} 

特別注意讀寫字節(jié)數(shù)據(jù)順序由低到高,不可弄錯

2.主機寫入數(shù)據(jù)

DS18B20-STM32溫度讀取


void WriteOneChar(unsigned char dat) 
{ 
	DQ_OUT();
  unsigned char i=0; //數(shù)據(jù)線從高電平拉至低電平,產(chǎn)生寫起始信號。15us之內(nèi)將所需寫的位送到數(shù)據(jù)線上,
  for(i=0;i<8;i++) //在15~60us之間對數(shù)據(jù)線進行采樣,如果是高電平就寫1,低寫0發(fā)生。 
  {
   DQ_SET_L(); //在開始另一個寫周期前必須有1us以上的高電平恢復(fù)期。 
   delay_us(1); 
	  if(dat&0x01)
  {
	  DQ_SET_H();
//	  delay_us(1); 
  }
  else
	  DQ_SET_L(); 
  
  delay_us(60); 
 
   DQ_SET_H();
//  delay_us(1); 
  
   dat>>=1;
  } 
 
} 

3.讀時序

DS18B20-STM32溫度讀取

char ReadOneChar()  //主機數(shù)據(jù)線先從高拉至低電平1us以上,再使數(shù)據(jù)線升為高電平,從而產(chǎn)生讀信號
{
unsigned char i=0; //每個讀周期最短的持續(xù)時間為60us,各個讀周期之間必須有1us以上的高電平恢復(fù)期
unsigned char dat=0; 
for (i=0;i<8;i++) //一個字節(jié)有8位 
{ 
	DQ_OUT(); 
 DQ_SET_L();  //低起始
 dat>>=1; 
//DQ_SET_H();
DQ_IN();
 if(DQ_READ()==1) 
 dat|=0x80; 
 delay_us(45);
// 	DQ_OUT(); 
 DQ_SET_H();
 
} 
return(dat);
 
} 

讀取溫度數(shù)據(jù)

char  ReadTemperature(void) 
{

unsigned char tempL=0; //設(shè)全局變量
unsigned char tempH=0; 
unsigned int TEMPZ;//測量到的溫度的整數(shù)部分
 
  Init_DS18B20(); //初始化
//	while(chack_ds18b20())
//	{
//	printf("err");
//	}
 WriteOneChar(0xcc); //跳過讀序列號的操作
 WriteOneChar(0x44); //啟動溫度轉(zhuǎn)換
//	chack_ds18b20(); 
  Init_DS18B20(); //初始化
 WriteOneChar(0xcc); //跳過讀序列號的操作 
 WriteOneChar(0xbe); //讀溫度寄存器(頭兩個值分別為溫度的低位和高位) 
 tempL=ReadOneChar(); //讀出溫度的低位LSB
 tempH=ReadOneChar(); //讀出溫度的高位MSB 
 
 	  TEMPZ= ((tempH<<4)|(tempL>>4)); 
	 if(TEMPZ>=128)
	 {
	 TEMPZ=~TEMPZ+1; 
	 }		  
		return  TEMPZ;

}

感謝大佬的分享
https://blog.csdn.net/weixin_47457689/article/details/124081703文章來源地址http://www.zghlxwxcb.cn/news/detail-506407.html

到了這里,關(guān)于DS18B20-STM32溫度讀取的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • STM32 Proteus仿真水箱水塔水位溫度控制系統(tǒng)DS18B20 -0065

    STM32 Proteus仿真水箱水塔水位溫度控制系統(tǒng)DS18B20 -0065

    STM32?Proteus仿真水箱水塔水位溫度控制系統(tǒng)DS18B20?-0065 Proteus 仿真小實驗: STM32?Proteus仿真水箱水塔水位溫度控制系統(tǒng)DS18B20?-0065 功能: 硬件組成:STM32F103C8單片機?+LCD1602顯示器+ADC220V轉(zhuǎn)3.3V電路+DS18B20溫度+多個按鍵(設(shè)置溫度和水位)+繼電器模擬加熱+繼電器模擬加水。 1.人工

    2024年02月15日
    瀏覽(20)
  • 【基于STM32F103C8T6的DS18b20溫度檢測系統(tǒng)】

    庫函數(shù)是ST公司針對STM32系列微控制器提供的一套API,可以方便地實現(xiàn)各種功能。下面是一個基于STM32F103C8T6的溫度檢測系統(tǒng)的示例,使用了STM32F10x標準庫函數(shù)。 硬件部分: - STM32F103C8T6微控制器 - 電源模塊 - 溫度傳感器模塊 軟件部分: - Keil C編譯器 - STM32F10x_StdPeriph_Driver庫文件

    2024年01月20日
    瀏覽(24)
  • 單片機學(xué)習(xí)筆記---DS18B20溫度讀取

    單片機學(xué)習(xí)筆記---DS18B20溫度讀取

    目錄 OneWire.c 模擬初始化的時序 模擬發(fā)送一位的時序 ?模擬接收一位的時序 模擬發(fā)送一個字節(jié)的時序 模擬接收一個字節(jié)的時序 OneWire.h DS18B20.c DS18B20數(shù)據(jù)幀 模擬溫度變換的數(shù)據(jù)幀 模擬溫度讀取的數(shù)據(jù)幀 DS18B20.h main.c 上一篇講了DS18B20溫度傳感器的工作原理,這節(jié)開始代碼演示

    2024年02月20日
    瀏覽(20)
  • 51單片機學(xué)習(xí)--DS18B20溫度讀取&溫度報警器

    51單片機學(xué)習(xí)--DS18B20溫度讀取&溫度報警器

    需要先編寫OneWire模塊,再在DS18B20模塊中調(diào)用OneWire模塊的函數(shù) 先根據(jù)原理圖做好端口的聲明: 接下來像之前一樣把時序結(jié)構(gòu)用代碼模擬出來: 至此,OneWire模塊就寫好了,接下來在DS18B20模塊中模擬數(shù)據(jù)幀: 之后只需要在main中調(diào)用即可 接下來進行一些綜合的應(yīng)用:溫度報警

    2024年02月14日
    瀏覽(19)
  • 51單片機讀取DS18B20溫度傳感器

    51單片機讀取DS18B20溫度傳感器

    1 .首先我們知道DS18B20是 單總線協(xié)議 ,只有一根數(shù)據(jù)線。所以Data數(shù)據(jù)線即使發(fā)送端又是接收端,同時DS18B20內(nèi)部接了弱上拉電阻(如圖一所示),數(shù)據(jù)線默認為高電平。有了這些概念,我們就能進行下一步。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖一 (截取

    2024年02月08日
    瀏覽(24)
  • 【正點原子STM32連載】 第四十二章 DS18B20數(shù)字溫度傳感器實驗 摘自【正點原子】STM32F103 戰(zhàn)艦開發(fā)指南V1.2

    【正點原子STM32連載】 第四十二章 DS18B20數(shù)字溫度傳感器實驗 摘自【正點原子】STM32F103 戰(zhàn)艦開發(fā)指南V1.2

    1)實驗平臺:正點原子stm32f103戰(zhàn)艦開發(fā)板V4 2)平臺購買地址:https://detail.tmall.com/item.htm?id=609294757420 3)全套實驗源碼+手冊+視頻下載地址: http://www.openedv.com/thread-340252-1-1.html# 本章,我們將介紹STM32F103如何讀取外部溫度傳感器的溫度,來得到較為準確的環(huán)境溫度。我們將學(xué)習(xí)

    2024年02月04日
    瀏覽(24)
  • 【TB作品】MSP430單片機 Proteus仿真 DS18B20溫度 LCD1602顯示器 溫度讀取與顯示

    【TB作品】MSP430單片機 Proteus仿真 DS18B20溫度 LCD1602顯示器 溫度讀取與顯示

    效果圖如下: 首先,讓我們先來說說DS18B20集成電路。 ? DS18B20是一款采用OneWire通訊協(xié)議的集成電路,因此只需要一條線就可以與微控制器通訊。它不需要額外的電源,但是也有外部電源輸入端口。 ? OneWire設(shè)備具有64位的ROM代碼。如我們之前所說,這64位的前8位是家族代碼,中間

    2024年02月08日
    瀏覽(24)
  • stm32之DS18B20

    stm32之DS18B20

    ????????DS18B20與stm32之間也是通過單總線進行數(shù)據(jù)的傳輸?shù)?。單總線協(xié)議在DHT11中已經(jīng)介紹過。雖說這兩者外設(shè)都是單總線,但時序電路卻很不一樣,DS18B20是更為麻煩一點的。 ?舉例(原碼補碼反碼轉(zhuǎn)換_原碼反碼補碼轉(zhuǎn)換_王小小鴨的博客-CSDN博客): ?將這兩個字節(jié)的數(shù)

    2024年02月10日
    瀏覽(19)
  • 【嵌入式 – GD32開發(fā)實戰(zhàn)指南(ARM版本)】第2部分 外設(shè)篇 - 第3章 溫度傳感器DS18B20

    【嵌入式 – GD32開發(fā)實戰(zhàn)指南(ARM版本)】第2部分 外設(shè)篇 - 第3章 溫度傳感器DS18B20

    DS18B20 是 DALLAS 最新單線數(shù)字溫度傳感器,新的\\\"一線器件\\\"體積更小、適用電壓更寬、更經(jīng)濟。Dallas 半導(dǎo)體公司的數(shù)字化溫度傳感器 DS1820 是世界上第一片支持 \\\"一線總線\\\"接口的溫度傳感器。 DS18B20采用的單總線協(xié)議,也就是只需占用主機一個I/O口,無需其他外圍電路,直接將

    2024年02月21日
    瀏覽(20)
  • STM32使用HAL庫驅(qū)動DS18B20

    STM32使用HAL庫驅(qū)動DS18B20

    因為DS18B20是單總線,數(shù)據(jù)接收發(fā)送都是這根線,所以單片機配置為開漏上拉輸出。 因為DS18B20對時序要求比較嚴格,建議用定時器延時獲得微秒延時函數(shù)。 總線為48M,分頻48,獲得1us定時時基。 使用“void DS18B20_StartConv(void)”函數(shù)啟動轉(zhuǎn)換,因為轉(zhuǎn)換時間需要750ms(12Bit精度)

    2024年02月07日
    瀏覽(15)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包