|
最近在写EPC的CPU温度 风扇转速获取方法
& o( ~1 v9 W: E3 X0 t9 ^5 Z0 v- m7 @6 G1 R2 B& ^
问题
. G: Y9 a% D& ^, M/ P. ]* u1 P在获取CPU温度和风扇转速后( h2 V3 v! n% z9 F
再次循环获取 CPU温度,数据就出现错误了,为什么?
* ~$ e, q7 q4 E. Y& L f& D做了缓冲区满空判断
5 s& M' K$ H2 |( i+ ]下面是判断代码2 G+ c$ N8 b* @7 ?: n) n
" \% g) E! T y& U6 k
void check_buffer(int in_out,int port)
( X3 M @0 V. x5 |$ Y{
6 n& Z) F' o4 G* u+ y: z DWORD dw_temp=0;9 O( O2 t! K% `( N5 ^% g
GetPortVal(port,&dw_temp,1);# g% t" R& }# U6 t h5 Q3 Y
if(in_out==INPUT)
- T6 [( o! h# h1 a {" M2 p& H/ \6 c3 m: t+ P: \: y& f
while(dw_temp&0x02)
/ x* D$ ]" F* z1 Q1 v {
. q1 a. A# d& Y4 R8 Y t GetPortVal(port,(&dw_temp),1);+ T4 l( u3 R( x% y4 t
dw_temp=(BYTE)dw_temp;
6 N8 W/ V3 o0 B" f1 U$ _ Sleep(5);}# @, f1 o3 D r
}
' W$ L; E6 [2 {* E: E8 K else if(in_out==OUTPUT) 2 r+ C% F7 \6 ]3 r0 a( P
{+ N. S$ S& r( m4 d, I
while(!(dw_temp&0x01))8 Y, p0 P( f" B+ b$ e1 ]7 R
{
+ t6 e; s0 M$ B# \" l GetPortVal(port,&dw_temp,1);7 H" g) l5 `) G3 w
dw_temp=(BYTE)dw_temp;) N o% o6 E" S7 @6 p8 G+ p( e( ]
Sleep(50);
7 n! P1 i$ u& _& m5 M# n; y }
; [; R7 Y" F$ Y5 R: G }, P& R% J& ?$ g7 N: ]
( x& F0 z. a( a$ d( J
} |
|