|
|
最近在写EPC的CPU温度 风扇转速获取方法
; T9 e- i7 O! V7 G; r
; n* s% Y5 ]* N9 ?4 m% `' a' G2 I; B问题
" k z5 Z! ~5 P- r在获取CPU温度和风扇转速后& C% I4 F( R' A+ z% L2 l; _, D
再次循环获取 CPU温度,数据就出现错误了,为什么?
* \+ @/ X, ]4 M做了缓冲区满空判断: U9 c% N9 \! C( Y' z! o# N# w
下面是判断代码. p% E4 {1 V! l1 h. y0 @
' w0 B9 u. x- |& Svoid check_buffer(int in_out,int port)% m" L: g$ g0 V/ r+ N
{
# ]( E! U0 v' Z/ i: [ DWORD dw_temp=0;
9 J" \+ }6 g* r5 B, e GetPortVal(port,&dw_temp,1);
) i% J; m3 o+ j+ k if(in_out==INPUT)
9 I3 T$ j6 K1 m {. ^) ^ o, C" F& J2 u
while(dw_temp&0x02): N6 a' W% I6 l& k% @6 E
{
) j) X- r$ S* A; n& x GetPortVal(port,(&dw_temp),1);. ?; ? V* r6 H+ k
dw_temp=(BYTE)dw_temp;
* Y5 ~6 @: \, Q9 _& _( G% a: F; E Sleep(5);}% }0 U9 g* K4 J+ Z' L
}. Q2 C- C1 d6 r6 a8 _
else if(in_out==OUTPUT)
6 H( _: K7 d( J: o{6 ~- m2 h7 {3 {
while(!(dw_temp&0x01))
- j+ a5 ?+ F. U+ ^2 a( _" g2 B {
6 D3 T2 C/ X) o1 M# z4 U: L5 ~ GetPortVal(port,&dw_temp,1);' B) E. @, h- k/ g r, x
dw_temp=(BYTE)dw_temp;, C1 H( t. S9 [. O
Sleep(50);
( M; I1 s- g( e: a9 u! ~( B+ h7 D! E }! V% l- C0 b- ^2 o8 p$ j/ w# V
}
, _7 w1 W+ V( [* f% @* N, r% V1 i5 f9 ]: A1 e
} |
|