|
|
最近在写EPC的CPU温度 风扇转速获取方法 ^1 e" n( Z7 _0 U- z! R
9 T( f ~: @, e: |9 ~; x* A
问题
: L- n" b" ?4 ?7 q在获取CPU温度和风扇转速后
7 t5 V8 f4 C, u8 C7 i" X, O再次循环获取 CPU温度,数据就出现错误了,为什么?8 ]- R! Q* d& m- Q$ z7 E* u
做了缓冲区满空判断
& j$ P* f5 O6 Y下面是判断代码8 J8 t4 q% J; l2 [+ F
, Z# [* G0 y+ M0 y% tvoid check_buffer(int in_out,int port)
4 g6 [# T, q0 N! t{
; u0 W5 ?1 g$ N0 O7 @ DWORD dw_temp=0;
0 Z$ z& Y" L& N+ | GetPortVal(port,&dw_temp,1);
) ^) G. e/ J1 ^ z+ c if(in_out==INPUT) * C) D) ^: F: c4 n3 }5 C
{5 g/ x! s/ F( r$ d5 C8 L, f7 R& M
while(dw_temp&0x02)
# n( L' v' K2 c) j# w% v$ G# Q+ G& f {
6 R& @6 L F9 d; Y P, M: k GetPortVal(port,(&dw_temp),1);
2 I5 s% O. ~2 r& b dw_temp=(BYTE)dw_temp;- {, Y' ?% t1 t; E
Sleep(5);}) a0 e1 E7 h( Q6 ~' l
}& B" N R6 q! V% ~6 }
else if(in_out==OUTPUT)
]+ @$ D% ~9 ?- K/ O0 Z{3 I% D0 s, u3 k4 {5 z
while(!(dw_temp&0x01))
+ ?1 K! G4 r: f2 i* l, z! h8 W {& H8 R$ v2 s0 a2 h
GetPortVal(port,&dw_temp,1);
e/ B' w- z0 f# Y6 J5 B. ]4 U dw_temp=(BYTE)dw_temp;8 N, i: Z) E+ s9 o# ~
Sleep(50);
+ m7 }. ~& x: f' T3 ~% R }/ w+ [( q6 |8 m5 c5 E2 ~; F
}
2 c- N# c8 v8 Y- F0 I$ |' g- h) ]0 w
} |
|