【发布时间】:2017-06-17 00:50:02
【问题描述】:
我正在使用 STM32F401RE Nucleo 板来测量环境温度。在采样过程之后,我从 ADC_CHANNEL_TEMPERATURE 收到一个数字值,我想将此数字值转换为 C°。我在互联网上搜索了这个,我发现了两种不同的方法:
方法一:http://www.st.com/content/ccc/resource/technical/document中的第226页
Temp(degree) = (V_sense - V_25)/Avg_slope + 25
方法2:http://www.st.com/content/ccc/resource/technical/document中的第251页
Temp(degree) = ( ( (110 - 30)*(TS_DATA - TS_CAL1) ) / (TS_CAL_2 - TS_CAL_1) ) + 30
Where:
- TS_CAL2: temperature sensor calibration value at 110 C°
- TS_CAL1: temperature sensor calibration value at 30 C°
- TS_DATA: temperature sensor output from ADC
这让我感到困惑,哪一个是计算 C° 温度的正确公式。 虽然方法 1 来自 STM32F401 的参考手册,但温度结果看起来并不正确。而STM32F0系列参考手册中的方法2,看起来更合理。
还是不知道在使用STM32F401RE Nucleo板时应该应用哪个公式?
【问题讨论】:
-
出于好奇,你用这两种方法测量什么,你用什么作为参考温度?
-
第二个等式不正确,应该是“80”或“110 - 30”。
-
您好,第二个等式中有错字(现已更正)。我有一个可以控制温度的烤箱。我使用室温 (20oC)、-10oC、60oC 作为参考温度。我从方程 2 得到的结果对参考温度更合理。
标签: microcontroller stm32 stm32f4discovery stm32f4 stm32f0