STM32的內(nèi)部溫度傳感器
1、STM32的內(nèi)部溫度傳感器
STM32內(nèi)部溫度傳感器與ADC的通道16相連,與ADC配 合使用實現(xiàn)溫度測量。測量范圍–40~125℃,精度 ± 1.5℃
操作流程:
1)、設(shè)置ADC相關(guān)參數(shù)
// ADC1 configuration -----------------------------
ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
ADC_InitStructure.ADC_ScanConvMode = ENABLE;
ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
ADC_InitStructure.ADC_NbrOfChannel = 1;
ADC_Init(ADC1, &ADC_InitStructure);
2)、選中ADC1的通道16作為輸入,設(shè)置采樣時間17.1us ( Ncycle × tADC = 17.1靤 )。
// ADC1 regular channel16 Temp Sensor configuration
ADC_RegularChannelConfig(ADC1, ADC_Channel_16, 1, ADC_SampleTime_55Cycles5);
3)、設(shè)置寄存器ADC_CR2中的TSVREFE位激活溫度傳感器
// Enable the temperature sensor and vref internal channel
ADC_TempSensorVrefintCmd(ENABLE);
4)、轉(zhuǎn)換采樣值為溫度
ADC轉(zhuǎn)換結(jié)束以后,讀取ADC_DR寄存器中的結(jié)果,轉(zhuǎn)換溫度值計算公式如下:
V25 - VSENSE
T(℃) = ------------ + 25
Avg_Slope
V25: 溫度傳感器在25℃時 的輸出電壓,典型值1.43 V。
VSENSE:溫度傳感器的當(dāng)前輸出電壓,與ADC_DR 寄存器中的結(jié)果ADC_ConvertedValue之間的轉(zhuǎn)換關(guān)系為:
ADC_ConvertedValue * Vdd
VSENSE = --------------------------
Vdd_convert_value(0xFFF)
Avg_Slope:溫度傳感器輸出電壓和溫度的關(guān)聯(lián)參數(shù),典型值4.3 mV/℃。
//Converted Temperature
Vtemp_sensor = ADC_ConvertedValue * Vdd / Vdd_convert_value;
Current_Temp = (V25 - Vtemp_sensor)/Avg_Slope + 25;
2、VDDA的電壓范圍
STM32的數(shù)據(jù)手冊規(guī)定,VDD與VDDA之間的壓差不能大于300mV。ADC的工作電壓范圍在2.4V~3.6V,供電電壓VDD范圍在2.0V~3.6V.