|
|
最近在写EPC的CPU温度 风扇转速获取方法
: k: I3 f; |! `( I b. x) h7 y4 ?! v- f
问题3 A+ a f$ S* k# b$ y- a: R$ {
在获取CPU温度和风扇转速后
2 e6 m5 m% M; _6 D- P( N% ~1 J7 v再次循环获取 CPU温度,数据就出现错误了,为什么?
- ^' M8 v7 v5 l' X! I做了缓冲区满空判断
3 Z6 Q }/ }3 b, m$ z; U下面是判断代码
- P& A/ e! n+ b( ~! Z9 ^& f
+ P: i! c5 r [" }' Q9 |$ [void check_buffer(int in_out,int port)4 i h7 P" L6 ~6 ^: F* ]- V
{3 n# B4 n5 }! T# s: R
DWORD dw_temp=0;
4 }7 F' Z( r+ o3 r) | GetPortVal(port,&dw_temp,1);3 X3 K5 D: X" a2 f7 j7 J$ N
if(in_out==INPUT)
, O$ r9 e& B8 J- | {
- }: e% Y4 u( Y+ a4 ^1 Z7 } while(dw_temp&0x02)
# L8 M5 i: j( E1 k# R& Y, e' { {
7 p4 ?' Z& u' w9 x7 z GetPortVal(port,(&dw_temp),1);$ o6 T& J0 N2 t0 Q5 p' z
dw_temp=(BYTE)dw_temp;
+ r! B7 V+ u; Z v: P5 T1 j Sleep(5);}
" @" J% O! F. C1 @" s- P }3 I: _( s' N+ l0 |: n
else if(in_out==OUTPUT)
6 C2 k, ^8 `5 t8 G) U7 h ^# [2 X{( d7 j: p. t0 \3 Y8 j
while(!(dw_temp&0x01))
, e" a, s$ m) C+ A6 r! C5 F/ z {# l2 v9 r. }9 J9 @
GetPortVal(port,&dw_temp,1);% n' Z% F/ Z0 K
dw_temp=(BYTE)dw_temp;2 o9 s3 T( A! p4 ^" S z7 m
Sleep(50);
+ T: t6 B( D, g: o3 ^! i }* A3 K; O, s$ g
}
5 k5 u& \& h! O! q9 i' C+ K% |9 e( Y; k& W
} |
|