|
最近在写EPC的CPU温度 风扇转速获取方法5 D6 C- H2 I# I% @9 G
9 q% R7 i3 k2 ^0 v9 w0 O
问题
' c* \) ?; O! H在获取CPU温度和风扇转速后
! e. a7 r0 b, r再次循环获取 CPU温度,数据就出现错误了,为什么?
2 S, I. |% n$ E$ t+ g* Y) h做了缓冲区满空判断2 l- r# E: d# x% @# w
下面是判断代码
. [: k$ Y. e, B" F3 _; q5 s1 C2 `0 Q# @3 G$ U7 X# N8 [. U, @
void check_buffer(int in_out,int port)9 x6 i3 l+ R6 a, I, {9 ?
{
) t G- T! M; c DWORD dw_temp=0;. h. t1 S3 w. j; I
GetPortVal(port,&dw_temp,1);
) u5 k+ k% x3 |' ~$ [ if(in_out==INPUT)
, U3 t1 d( k+ x4 u. @% L/ H {4 W, O4 x5 ~- u1 I2 I2 r
while(dw_temp&0x02)
. z4 H9 z y3 V6 K7 M0 N {0 Z: G$ W* X; Z f6 E2 L7 {7 P1 d
GetPortVal(port,(&dw_temp),1);
: p% g& J; u7 Q0 h, l5 u dw_temp=(BYTE)dw_temp;
" l J" o7 S5 j+ q& j4 R; I Sleep(5);}' N; v% _9 x& C2 Y7 @ O
}
1 K/ Y( n0 s8 y else if(in_out==OUTPUT) / ^; Z* l! X& W
{& v4 ]( j$ n# ~/ V/ v/ t
while(!(dw_temp&0x01))$ H3 ~% O# |. ^5 E& j
{" }7 o; I/ C5 r$ S+ p
GetPortVal(port,&dw_temp,1);
/ v% x6 e% E( [, t& H& [8 N dw_temp=(BYTE)dw_temp;& d1 m# ]: V7 x7 \
Sleep(50);7 ^: C- m) E0 q
}
& ]2 q1 l* s, O: V M: N }& H% G0 m9 ]& Y/ f
. f3 ~% y" s1 X! R( g} |
|