. a; ] T! X) i2 i# q6 V% e- 计算公式" }2 r! g0 A- s
- 温度= ((TS_ADC_DATA - TS_CAL1)) * ( TS_CAL2_TEMP - TS_CAL1_TEMP)) / ( TS_CAL2 - TS_CAL1) + TS_CAL1_TEMP
复制代码 j9 m: `* R' f1 E# e5 M8 Z
其中:
" c* P) u5 s. D* R: LTS_ADC_DATA =温度传感器通过ADC测量的原始数据
* p1 |* A7 o8 q* R5 C6 ^5 g1 JAvg_Slope = (TS_CAL2 - TS_CAL1) / ( TS_CAL2_TEMP - TS_CAL1_TEMP) = 2.5(数据手册有)
: y) W- e+ h: \* o" M6 ~7 t" n5 b, @
TS_CAL1 =等效在温度的TS_ADC_DATA(ADC转换的AD数值)7 I9 e9 f2 }' E" {4 C+ Z
TEMP_DEGC_CAL1(出厂校准)! Q4 \' k+ d% E; K h( z: h
TS_CAL2 =等效在温度的TS_ADC_DATA
" m: u6 n1 n0 p. [; v. lTEMP_DEGC_CAL2(工厂校准)
3 w* ^0 p8 s0 {- {* h$ g5 S( Y a" C% u
4 J1 h: U* A' t Z$ b
8 j; J' `9 `) k, j
所以上面的公式为
- C0 C; ?) P6 w: I T5 y! A4 ]7 M0 R" h' b c# I7 p
- 温度=(TS_ADC_DATA - TS_CAL1)*(1/2.5)+TS_CAL1_TEMP
* ~- E" h2 V7 q- V- @% [ - # l+ g4 e' j r9 [* s: N! d
- =(TS_ADC_DATA - TS_CAL1)*(1/2.5)+30
复制代码- 上面说/ n+ P1 n# l0 t; U3 W
- TS_ADC_DATA =温度传感器通过ADC测量的原始数据
" E. G% b4 P& C' ~. ~1 e3 I( _. \ - (也就是芯片出厂时原始AD值,比如12位AD,1.43v对应1774AD值)
* l# z- e- V" U) B - (4095/3.3)*1.43 = 1774(AD值)+ I% W5 m7 C4 o
- (2.5V对应1774,这是芯片内部电阻分压读的AD值对应1.43V,这里不做解释)
复制代码 4 F7 P8 C; u2 y4 l3 U
( v0 {) K9 ~6 |* C& p _TS_CAL1 =等效在温度的TS_ADC_DATA(ADC转换的AD数值)3 _6 L* V& a4 U; o1 d+ V: t! T
TS_CAL1就是为自己捕抓到的当前AD值
' ^/ `$ K0 M a O" H! F$ h/ a4 g* H0 j. v/ O
所以最终温度式子为:
# }+ Q7 q$ U& R K8 r
& v% b- _( l( }0 U# b0 A9 `* m6 k- 温度=(TS_ADC_DATA - TS_CAL1)*(1/2.5)+30
- }! K0 p' Y% n& |1 U+ h - = (1774 - 当前温度捕抓到的AD值)*(1/2.5)+30
. F, M# o0 I. t1 F - =(1774 - g_stADC.uiADTemp)*(1/2.5)+30
$ ^' i3 R$ _4 y - 注: g_stADC.uiADTemp为你捕抓到的当前温度的AD值
复制代码 - Q5 ~! u2 l& X8 u3 P
& g9 l9 |% }9 N" Q- Y. ^
7 P) u' ?0 ]+ o" w2 C; v |