1 e- A2 G; i: `4 }& K/ R6 q
4 h, M; p1 `7 ]$ A% f8 X0 v5 K+ X- <p>计算公式</p><p>温度= ((TS_ADC_DATA - TS_CAL1)) * ( TS_CAL2_TEMP - TS_CAL1_TEMP)) / ( TS_CAL2 - TS_CAL1) + TS_CAL1_TEMP</p>
复制代码 其中:
. }9 b* a7 ~( [5 S$ ]4 s1 x, aTS_ADC_DATA =温度传感器通过ADC测量的原始数据
4 t# _: O. T- qAvg_Slope = (TS_CAL2 - TS_CAL1) / ( TS_CAL2_TEMP - TS_CAL1_TEMP) = 2.5(数据手册有)
% ^+ b$ O' P9 M- _' U' w) }" E! G! I! e$ c( V3 _
TS_CAL1 =等效在温度的TS_ADC_DATA(ADC转换的AD数值)
/ k p( s& X$ ]TEMP_DEGC_CAL1(出厂校准)
% K2 d( R* `. m* T+ }8 xTS_CAL2 =等效在温度的TS_ADC_DATA
. L- C9 m1 n" ]( b: E/ k* u+ O* PTEMP_DEGC_CAL2(工厂校准)6 @) b1 M) m7 f0 M
# M7 V3 Q3 \$ t3 W# k( c; z( v6 J; ]
" p: {% {7 j2 e8 S& V/ \
所以上面的公式为. }1 s( _. A1 w8 e
6 ]2 A- e5 Q. a! y% r2 s$ d, a) H- <p>温度=(TS_ADC_DATA - TS_CAL1)*(1/2.5)+TS_CAL1_TEMP</p><p>4 M0 {- x4 \8 g8 Q, t* z0 w
- </p><p> =(TS_ADC_DATA - TS_CAL1)*(1/2.5)+30</p>
复制代码
0 H; L0 ~ j- `$ P& @" S 上面说
: x% b- e3 u0 X# E( ^3 J5 |- <p> TS_ADC_DATA =温度传感器通过ADC测量的原始数据</p><p> (也就是芯片出厂时原始AD值,比如12位AD,1.43v对应1774AD值)</p><p> (4095/3.3)*1.43 = 1774(AD值)</p><p> (2.5V对应1774,这是芯片内部电阻分压读的AD值对应1.43V,这里不做解释)</p>
复制代码 % H! M' q5 e2 n& f% O7 g1 r. E
6 X7 _! l; S- Y6 K; J5 G! `3 j
TS_CAL1 =等效在温度的TS_ADC_DATA(ADC转换的AD数值)
# _! v& @4 X1 h0 a3 ATS_CAL1就是为自己捕抓到的当前AD值
3 O( @; [7 G$ ]' _- R
7 B0 D7 \' e) k& w' {所以最终温度式子为:
. w! V% l. x: M- w( a( a# |0 m8 m
& z4 V" ^, t$ ? @6 }3 a- <p>温度=(TS_ADC_DATA - TS_CAL1)*(1/2.5)+30</p><p> = (1774 - 当前温度捕抓到的AD值)*(1/2.5)+30</p><p> =(1774 - g_stADC.uiADTemp)*(1/2.5)+30</p><p> 注: g_stADC.uiADTemp为你捕抓到的当前温度的AD值</p>
复制代码
/ ?% _, i* }7 c5 m6 x1 [4 _6 q& R- M) k
' p$ \$ Z& o( N j& y
|
计算结果是错的