最近想使用灵动微€€芯片里面自带的温度传感器来测试大概的温度,根据参考手册提供的信息: T(◦C) = (v25 - VSENSE) / Avg_Slope + 25
V25:温度传感器在 25◦C 时的输出电压。
Avg_Slope: 温度传感器输出电压和温度的关联参数。
V25 和 Avg_Slope 的典型值请参考数据手册温度传感器章节。
VSENSE:温度传感器当前的输出电压
VSENSE = Value * Vdd / 4096
最终经过简化之后得出如下公式:
Temp = (float)(1.45-(ADCPara.ADC_SensorVal*1.2/4096))/0.04801+25;
根据这公式计算,随着温度的升高,ADCPara.ADC_SensorVal的值也跟随上升,代入公式可看出,ADCPara.ADC_SensorVal的数字不断增大,温度反而是降低的。暂且不讨论这公式算的准不准,从原理上来说就已经行不通了。
为何出现这种情况呢,究竟是哪里有错,公式我明明是对着文档给的?
|