( f/ d: p0 `/ M9 d. L) c7 s Z. h: [+ F
- <p>计算公式</p><p>温度= ((TS_ADC_DATA - TS_CAL1)) * ( TS_CAL2_TEMP - TS_CAL1_TEMP)) / ( TS_CAL2 - TS_CAL1) + TS_CAL1_TEMP</p>
复制代码 其中:
b1 q* ?. a3 xTS_ADC_DATA =温度传感器通过ADC测量的原始数据
* Q s/ d6 T9 ~8 v8 S! `Avg_Slope = (TS_CAL2 - TS_CAL1) / ( TS_CAL2_TEMP - TS_CAL1_TEMP) = 2.5(数据手册有)( j0 w$ D+ a; j [, Q9 r
& l/ h! z. I. v* J9 c0 \
TS_CAL1 =等效在温度的TS_ADC_DATA(ADC转换的AD数值)
* B* f1 s* a, u" {TEMP_DEGC_CAL1(出厂校准)
; P6 b5 t" G$ I* E9 VTS_CAL2 =等效在温度的TS_ADC_DATA
2 f" M& v- E2 O! G1 e7 JTEMP_DEGC_CAL2(工厂校准)0 P/ R* }' ^" Y2 v. v' K: k
F3 N8 b+ w3 k. d* s* u9 O/ ?
" H8 _- t$ A+ b7 }6 E4 w
所以上面的公式为3 i5 [8 ~% t3 e1 q* z
: ^, [2 j/ @2 V1 ^* j* F
- <p>温度=(TS_ADC_DATA - TS_CAL1)*(1/2.5)+TS_CAL1_TEMP</p><p>
) s4 [% R2 f2 t' o ]1 W8 Q; m - </p><p> =(TS_ADC_DATA - TS_CAL1)*(1/2.5)+30</p>
复制代码
, A' @+ `; M; q+ O! j! Z 上面说/ F: Z, N; c1 O0 Q
- <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>
复制代码
1 v( S" q* y# l% r& [; r; C* ~1 u: }8 N' d# w2 D& D) t
TS_CAL1 =等效在温度的TS_ADC_DATA(ADC转换的AD数值): j8 e" y, q& m; j6 B
TS_CAL1就是为自己捕抓到的当前AD值: P" d0 c: G. n% B6 i
/ s1 o0 Q c M: V) A3 `' h
所以最终温度式子为:
4 _' T6 z' T; [; H8 Q* [
( f' B" W- T- \8 [5 q7 J0 g- <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>
复制代码 4 _3 @" O' X$ O0 Z
( _5 K0 `0 G$ S1 J2 y3 y/ |0 t/ v; l4 }) B$ s P
|
计算结果是错的