|
最近在写EPC的CPU温度 风扇转速获取方法2 d6 u$ |' a$ Q6 i+ F
7 s$ `; o/ o; F) w) e, |, |
问题
6 m/ ^# L3 M% Z1 _8 s# I在获取CPU温度和风扇转速后
0 i, @( N2 X- r9 H0 A6 {% n# d& Y( w再次循环获取 CPU温度,数据就出现错误了,为什么?0 ]/ n: \, x. @* C; l1 I' L
做了缓冲区满空判断- b& O" a, W) }7 x6 R1 }. A; H/ b
下面是判断代码
" f# L. k: L7 N" x( C
- g* r. P; G$ [* o J! Jvoid check_buffer(int in_out,int port). C. q" h4 l' d- C$ |' R8 A- d
{
3 U2 {3 t( ^6 E! ]! B9 P* U DWORD dw_temp=0;: G4 Y; p& n: S$ O5 T+ q
GetPortVal(port,&dw_temp,1);
6 x8 p1 K0 @& k$ j0 j) U E: A if(in_out==INPUT)
% h1 ^6 H. h& ]6 s: ?+ m1 J {- `% R! D/ Y9 i
while(dw_temp&0x02)
: J3 [$ u, X1 w" B, R) C {4 ]- }0 u( s) j0 H: H* `+ X4 A
GetPortVal(port,(&dw_temp),1);
u- D8 v# h* Q/ U) S dw_temp=(BYTE)dw_temp;
7 Y7 X- o7 N9 l5 v Sleep(5);}' Q) C0 A+ J/ I4 n5 k
}
' J- J7 W, z6 S9 S9 Q4 J else if(in_out==OUTPUT)
7 S; S9 ]) q |% ^{
, t' W+ ?' z6 g) Q4 C while(!(dw_temp&0x01))+ C2 p( l+ B( n: `5 k
{
0 u7 F: e& ~7 {5 z& {4 j GetPortVal(port,&dw_temp,1);8 E7 \# w4 V# {) s p, q6 g
dw_temp=(BYTE)dw_temp;5 U; m7 S& y+ P, K$ Q0 K
Sleep(50);
* P5 H6 y# r) [9 \2 N }2 ~) z: t" V. T! V
}
; M+ L# c: M. t4 U- f# a+ n% K y A2 O$ w/ j) q! ? p
} |
|