STM32内置一个温度传感器,通过ADC_IN16这个通道可以读出温度传感器的电压。在STM32的技术参考手册中给出了一个计算公式:
Temperature (in ℃) = {(V25 - VSENSE) / Avg_Slope} + 25
公式中的Vsense就是在ADC_IN16读到的数值。Avg_Slope就是温度与ADC数值转换的斜率。
设想一个XY坐标,X轴为ADC的电压读数,Y轴为温度,两轴之间有一条直线代表了温度与转换电压的关系;在这条直线上如果X轴电压为V25时,Y轴即为25℃;当读出的电压是其它数值时,即读出的电压是Vsense时,使用这个公式就可以得到温度的数值。
在STM32F103xx的数据手册中分别给出了V25和Avg_Slope的值:
V25 最小=1.34V 典型=1.43V 最大=1.52V
Avg_Slope 最小=4.0 典型=4.3 最大=4.6 单位是 mV/℃
例如读到Vsense = 1.30V。分别取V25和Avg_Slope的典型值,计算得到:
(1.43 - 1.30)/0.0043 + 25 = 55.23
所以温度大约为 55℃
用户1090342 2009-6-30 17:46
用户187751 2009-6-29 10:30
用户1090342 2009-4-14 19:05
用户1150109 2009-4-14 10:21
用户90076 2008-7-23 22:03