使用到的库函数分布在 stm32f10x_adc.c 文件和 stm32f10x_adc.h 文件中。
第一,我们要使用 STM32 的内部温度传感器,必须先激活 ADC 的内部通道,这里
通过 ADC_CR2 的 AWDEN 位(bit23)设置。设置该位为 1 则启用内部温度传感器。
第二,STM32 的内部温度传感器固定的连接在 ADC 的通道 16 上,所以,我们在设
置好 ADC 之后只要读取通道 16 的值,就是温度传感器返回来的电压值了。根据这个值,我们
就可以计算出当前温度。计算公式如下:
T(℃)={(V25-Vsense)/Avg_Slope}+25
上式中:
V25=Vsense 在 25 度时的数值(典型值为:1.43) 。
Avg_Slope=温度与Vsense曲线的平均斜率 (单位: mv/℃或uv/℃) (典型值: 4.3mv/℃) 。
利用以上公式,我们就可以方便的计算出当前温度传感器的温度了。
现在,我们就可以总结一下通过库函数设置 STM32 内部温度传感器的步骤 ,如下:
1 ) 设置 ADC , 开启内部温度传感器。
关于如何设置 ADC,上一节已经介绍了,我们采用与上一节相似的设置。不同的是上一节
温度传感器是读取外部通道的值,而内部温度传感器相当与把通道端口连接在内部温度传感器
上。所以这里,我们要开启内部温度传感器功能:
ADC_TempSensorVrefintCmd(ENABLE);
2 ) 读取通道 16 的 的 AD 值,计算结果。
在设置完之后,我们就可以读取温度传感器的电压值了,得到该值就可以用上面的公式计
算温度值了。
void T_Adc_Init(void) //ADC 通道初始化
- <