7 l5 R. X: `* T2 Y
. l0 d6 q* {4 i7 `3 C$ y" y
- <p>计算公式</p><p>温度= ((TS_ADC_DATA - TS_CAL1)) * ( TS_CAL2_TEMP - TS_CAL1_TEMP)) / ( TS_CAL2 - TS_CAL1) + TS_CAL1_TEMP</p>
复制代码 其中:
/ E1 ]. @1 x% U- @8 ]$ ^TS_ADC_DATA =温度传感器通过ADC测量的原始数据- ~% K& S0 Z* p+ Q" S( D& i4 D
Avg_Slope = (TS_CAL2 - TS_CAL1) / ( TS_CAL2_TEMP - TS_CAL1_TEMP) = 2.5(数据手册有)
) {- l& G2 b. I1 T- J% ?
2 x1 W: g9 ?/ k' k0 E6 A$ pTS_CAL1 =等效在温度的TS_ADC_DATA(ADC转换的AD数值)( Z# s! H4 S( Q0 _) M5 M- J1 l
TEMP_DEGC_CAL1(出厂校准)% Q4 K/ j) i4 s/ w! i$ V0 K# t G
TS_CAL2 =等效在温度的TS_ADC_DATA2 H! m+ N. y$ v6 {5 w/ i) K
TEMP_DEGC_CAL2(工厂校准) A2 u; a# ^" `% A: |
3 j/ V- Y: v u6 k: R
. B; m4 M; h5 g3 F6 c% c所以上面的公式为. b( M2 s m n
+ [# \0 E1 Y, o r8 E
- <p>温度=(TS_ADC_DATA - TS_CAL1)*(1/2.5)+TS_CAL1_TEMP</p><p>
" b4 o" `6 x7 C( }& q - </p><p> =(TS_ADC_DATA - TS_CAL1)*(1/2.5)+30</p>
复制代码
8 }# i% c1 |1 l/ B4 I8 k, l1 P 上面说/ V, A# C/ p! f' o* B
- <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>
复制代码 ' o1 U' X! o1 z/ B- E
3 F' X* H5 r' P8 GTS_CAL1 =等效在温度的TS_ADC_DATA(ADC转换的AD数值)0 R; G( p& S. g6 H- T4 ~
TS_CAL1就是为自己捕抓到的当前AD值5 S2 z ^* b' k8 H9 x: G
- P8 B6 E2 E2 I5 o J8 R3 p
所以最终温度式子为: L$ w9 G/ |' B9 K* M
h( M" b# n \- v; d# d- <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>
复制代码
. C& }0 J* O+ h' s- h H+ h: T$ ^- n. N& O a7 y, i' z9 n+ n
$ x2 x1 z! O3 W( E |
计算结果是错的