2 U- x# V9 V9 X6 V: J2 g0 v
- 计算公式
& A! X: h) T! t2 G" P - 温度= ((TS_ADC_DATA - TS_CAL1)) * ( TS_CAL2_TEMP - TS_CAL1_TEMP)) / ( TS_CAL2 - TS_CAL1) + TS_CAL1_TEMP
复制代码 6 N' S( r" f9 G) U# ^0 ?+ B0 T; Y% p
其中:. o5 _5 F8 C' t6 k
TS_ADC_DATA =温度传感器通过ADC测量的原始数据) `. e# U0 ?# ~3 K# W
Avg_Slope = (TS_CAL2 - TS_CAL1) / ( TS_CAL2_TEMP - TS_CAL1_TEMP) = 2.5(数据手册有)
8 N8 D3 K& L+ { { z: M9 F1 p: F' }
' j1 C) t2 c8 u, fTS_CAL1 =等效在温度的TS_ADC_DATA(ADC转换的AD数值)
/ _( Q' x; g$ g+ A% g7 {4 yTEMP_DEGC_CAL1(出厂校准)
1 C; F; a- U' Y& {TS_CAL2 =等效在温度的TS_ADC_DATA* E/ y* e! q% r8 H! \' T% P
TEMP_DEGC_CAL2(工厂校准)* J& h6 c0 M$ ?" Q8 m
& t+ e k$ l! H6 O% e
2 I" }1 a/ }' n1 d0 r9 e! K. @, r3 X; f4 A: G
所以上面的公式为) T3 D" i; o# V5 ]) |
( b6 @2 g; H- O3 v) w
- 温度=(TS_ADC_DATA - TS_CAL1)*(1/2.5)+TS_CAL1_TEMP
. J' l3 ^$ h9 B. O. d7 F - ; r# C- V8 B& A% U) X7 C( i! p" U# A
- =(TS_ADC_DATA - TS_CAL1)*(1/2.5)+30
复制代码- 上面说
, ^; v2 y( X' J+ M$ z( i" l - TS_ADC_DATA =温度传感器通过ADC测量的原始数据
|/ e* i% [+ X* b5 X, d - (也就是芯片出厂时原始AD值,比如12位AD,1.43v对应1774AD值)5 N# t9 x3 @9 w* z. _
- (4095/3.3)*1.43 = 1774(AD值)
% K5 ? b! U$ c1 I - (2.5V对应1774,这是芯片内部电阻分压读的AD值对应1.43V,这里不做解释)
复制代码 / S) k" ~% q" H5 g9 d
/ e) o9 C$ \% ?- a+ J7 BTS_CAL1 =等效在温度的TS_ADC_DATA(ADC转换的AD数值)& |4 @& [7 G( i
TS_CAL1就是为自己捕抓到的当前AD值# O* {# h7 T' c! b' `/ \
; P% b/ k& [5 X: s! S所以最终温度式子为:0 Y0 w; z. b7 i) B% X
4 S$ } C2 Q7 [# b# d5 @$ ^! k
- 温度=(TS_ADC_DATA - TS_CAL1)*(1/2.5)+30. {5 `! S# _/ Z& P" P
- = (1774 - 当前温度捕抓到的AD值)*(1/2.5)+30
4 v+ n2 R) K* q8 G, V - =(1774 - g_stADC.uiADTemp)*(1/2.5)+30
9 f# D# T0 @9 @3 v) n3 q - 注: g_stADC.uiADTemp为你捕抓到的当前温度的AD值
复制代码 # y7 S' o' Q5 A. ?, B0 r
3 X! M1 y% |; t9 p5 w: T+ V; M
k# |8 W6 t/ F* D( R- `! H
|