|
|
最近在写EPC的CPU温度 风扇转速获取方法3 a T R0 \* x: M; l7 V
9 X4 g! j8 B" t2 E: ?* g问题
, ]8 S$ }! h6 G, W在获取CPU温度和风扇转速后
' u8 v) | P& h4 j7 W: d0 Y* o" A/ g: j再次循环获取 CPU温度,数据就出现错误了,为什么?
2 h5 z/ d8 L# o2 h: i做了缓冲区满空判断( m; ~7 M1 l0 y* E" D
下面是判断代码
+ u' x! {& T4 M9 D2 W. y4 K. ~. i
; }0 e" ]( `( b+ V' Q: pvoid check_buffer(int in_out,int port)2 W# ^- m4 }# s" o/ o$ K
{
( Q \- {4 \% d5 n. C' i; l$ z DWORD dw_temp=0;8 n) O9 u: e* b: P7 N
GetPortVal(port,&dw_temp,1);
+ @+ T+ }5 f6 S! t, ?3 T) G/ F if(in_out==INPUT)
; q( g A- r! B {
& t: F$ n* n9 _ ~ while(dw_temp&0x02)5 s6 K6 P, T7 Z* ]7 \
{) }& \% O: k: d0 S' I5 _$ v
GetPortVal(port,(&dw_temp),1);8 `% E9 }0 g1 v8 Z9 N+ i* V
dw_temp=(BYTE)dw_temp;0 G" ~' d& {! [
Sleep(5);}5 c; D+ ]# u5 J
}
# F2 y9 m0 A2 }4 n else if(in_out==OUTPUT)
|% _, \( f/ `8 G1 ^{6 x7 Y; r6 n2 w0 v" S
while(!(dw_temp&0x01)): a$ V$ z2 Q. p; F9 e. O4 e
{
% ^: L/ W- L+ @( E) K' B# a2 l5 U$ V GetPortVal(port,&dw_temp,1);
2 S1 e) F7 T7 ` dw_temp=(BYTE)dw_temp;
1 z" Z Z+ F* c" g- `/ y Sleep(50);; C& W y! E; @$ L& h$ X
}
. i) c# F. r. H5 L2 i* D6 F: x }
* R% |! [' I; C$ K
3 v/ b' |7 w. c( T3 K& q# [! B} |
|