STM32溫度傳感器_第1頁
STM32溫度傳感器_第2頁
STM32溫度傳感器_第3頁
STM32溫度傳感器_第4頁
STM32溫度傳感器_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、STM32F103溫度傳感器簡介我們介紹了 ADC 模數(shù)轉(zhuǎn)換實驗,知道 ADC 內(nèi)部有一個通道連接著芯片的溫度傳感器,這一章我們就來學習下 STM32F1 的內(nèi)部溫度傳感器。本章要實現(xiàn)的功能是:通過芯片內(nèi)部溫度傳感器讀取溫度,并將讀取的溫度數(shù)據(jù)打印出去,D1 指示燈閃爍提示系統(tǒng)正常運行簡介STM32F1 內(nèi)部含有一個溫度傳感器,可用來測量 CPU 及周圍的溫度(TA)。此溫度傳感器與 ADC1 內(nèi)部輸入通道相連接,如圖 29.1.1 所示。它連接在ADC1_IN16 上。ADC1 可以將傳感器輸出的電壓轉(zhuǎn)換成數(shù)字值。STM32F1 的內(nèi)部溫度傳感器支持的溫度范圍為:-40125 度,精度為1.

2、5左右。溫度傳感器輸入通道結(jié)構(gòu)STM32F1 內(nèi)部溫度傳感器的使用很簡單,只要初始化下 ADC1_IN16 通道,并激活其內(nèi)部溫度傳感器通道就差不多了溫度值的計算(1)要使用 STM32F1 的內(nèi)部溫度傳感器,必須先激活 ADC 的內(nèi)部通道,這里通過 ADC_CCR 的 TSVREFE 位( bit23)設(shè)置。設(shè)置該位為 1 則啟用內(nèi)部溫度傳感器,否則關(guān)閉內(nèi)部溫度傳感器。(2)STM32F103ZET6 的內(nèi)部溫度傳感器固定的連接在 ADC1_IN16 上,所以,我們在設(shè)置好 ADC1 之后只要讀取通道 16 的 AD 值,就知道溫度傳感器返回來的電壓值了。根據(jù)這個值,我們就可以計算出當前溫度

3、。計算公式如下:T() =( V25 - Vsense) /Avg_Slope+25公式中:V25=Vsense 在 25 度時的數(shù)值(典型值為:1.43V)。Avg_Slope=溫度與 Vsense 曲線的平均斜率(單位為 mv/或 uv/)(典型值為 4.3mV/)。部溫度傳感器配置步。具體步驟如下: (ADC 相關(guān)庫函數(shù)在 stm32f10 x_adc.c和 stm32f10 x_adc.h 文件中)(1)初始化 ADC1_IN16 相關(guān)參數(shù),開啟內(nèi)度溫度傳感器ADC1_IN16 的初始化步驟與上一章介紹 AD 模數(shù)轉(zhuǎn)換實驗一樣,這里我們只需要開啟內(nèi)部溫度傳感器即可,調(diào)用的庫函數(shù)為:AD

4、C_TempSensorVrefintCmd(ENABLE);/打開 ADC 內(nèi)部溫度傳感器(2)讀取 ADC1_IN16 AD 值,將其轉(zhuǎn)換為對應(yīng)溫度上一步配置好后,我們就可以讀取溫度傳感器的電壓值,根據(jù)溫度計算公式,可以求出對應(yīng)電壓值的溫度內(nèi)部溫度傳感器初始化函數(shù)void ADC_Temp_Init(void)ADC_InitTypeDef ADC_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1,ENABLE);RCC_ADCCLKConfig(RCC_PCLK2_Div6); / 分 頻 因 子 6 時 鐘 為72M/6=

5、12MHzADC_TempSensorVrefintCmd(ENABLE);/打開 ADC 內(nèi)部溫度傳感器ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; /ADC 工作模式:ADC1 和 ADC2 工作在獨立模式ADC_InitStructure.ADC_ScanConvMode = DISABLE;/非掃描模式內(nèi)部溫度傳感器初始化函數(shù)ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;/關(guān)閉連續(xù)轉(zhuǎn)換ADC_InitStructure.ADC_ExternalTrigConv =ADC_Ex

6、ternalTrigConv_None;/禁止觸發(fā)檢測,使用軟件觸發(fā)ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;/右對齊ADC_InitStructure.ADC_NbrOfChannel = 1; /1 個轉(zhuǎn)換在規(guī)則序列中 也就是只轉(zhuǎn)換規(guī)則序列 1ADC_Init(ADC1, &ADC_InitStructure);/ADC 初始化ADC_Cmd(ADC1, ENABLE);/開啟 AD 轉(zhuǎn)換器ADC_ResetCalibration(ADC1);/重置指定的 ADC 的校準寄存器while(ADC_GetResetCa

7、librationStatus(ADC1);/獲取 ADC 重置校準寄存器的狀態(tài)ADC_StartCalibration(ADC1);/開始指定 ADC 的校準狀態(tài)while(ADC_GetCalibrationStatus(ADC1);/獲取指定 ADC 的校準程序ADC_SoftwareStartConvCmd(ADC1, ENABLE);/使能或者失能指定的 ADC的軟件轉(zhuǎn)換啟動功能溫度讀取函數(shù)int Get_Temperture(void)u32 adc_value;int temp;double temperture;adc_value=Get_ADC_Temp_Value(ADC_Channel_16,10); /讀取通道 16內(nèi)部溫度傳感器通道,10 次取平均temperture=(float)adc

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論