内部温度传感器
1、结构框图
2、STM32有一个内部的温度传感器,可以用来测量CPU及周围的温度(TA)。该温度传感器在内部和ADCx_IN16输入通道相连接,此通道把传感器输出的电压转换成数字值。温度传感器模拟输入推荐采样时间是17.1μs。
STM32的内部温度传感器支持的温度范围为:-40~125度。精度比较差,为±1.5℃左右。
注意:内部温度传感器更适合于检测温度的变化,而不是测量
绝对温度。如果需要测量绝度温度,应该使用一个外部温度传感器。
3、第一个地方,我们要使用STM32的内部温度传感器,必须先激活ADC的内部通道,这里通过ADC_CR2的TSVREFE(bit23)设置。设置该位为1则启用内部温度传感器。
4、第二个地方,STM32的内部温度传感器固定的连接在ADC的通道16上,所以,我们在设置好ADC之后只要读取通道16的值,就是温度传感器返回来的电压值了。
根据这个值,我们就可以计算出当前温度。计算公式如下
T(℃)={(V25-Vsense)/Avg_Slope}+25
上式中:
V25=Vsense在25度时的数值(典型值为:1.43)。
Avg_Slope=温度与Vsense曲线的平均斜率(单位为mv/℃或uv/℃)(典型值为4.3Mv/℃)。
利用以上公式,我们就可以方便的计算出当前温度传感器的温度了。
5、内部温度传感器温度和电压关系图
6、开启内部温度传感器步骤:
选择ADC_IN16输入通道。
设置采样时间大于17.1us
设置ADC_CR2的TSVREFE位,打开内部温度传感器
设置ADON位启动转换
读取ADC结果
计算。