|
|
最近在写EPC的CPU温度 风扇转速获取方法) r2 a% H; ]/ J# ]3 g- X# g5 \
8 ?) L, Z+ C3 h. I" @问题( e5 H7 s5 Y. S/ t
在获取CPU温度和风扇转速后2 R& `& |7 j1 i! {7 n( p
再次循环获取 CPU温度,数据就出现错误了,为什么?
& [/ l& H K, @6 W: A+ U做了缓冲区满空判断
B, ^/ D( t9 g- l& ]) P2 g) n下面是判断代码: d* @4 y' x4 U" M: Y
1 Q1 g& `" a3 V
void check_buffer(int in_out,int port)% l4 V; }% u: X; d4 b
{( ~* L6 q; N1 }
DWORD dw_temp=0;
6 f% i4 S/ ^ E+ \. C GetPortVal(port,&dw_temp,1);
- F# S% d, L% q+ L5 e if(in_out==INPUT)
# E& U% q; ~. j4 Y: B, v9 N {2 R( h. B1 {2 w/ f
while(dw_temp&0x02)
3 N- Q/ T3 g; Q& y" ^+ b7 ]0 R {
: F5 M# M9 ^/ Y# s GetPortVal(port,(&dw_temp),1);* H( s+ n5 E; u) F
dw_temp=(BYTE)dw_temp; c8 T; F5 N2 R+ o& P
Sleep(5);}1 s# O" _: z3 Q6 H! R* ~" T# @
}
6 D4 a8 a5 T7 d6 ^ else if(in_out==OUTPUT) . o2 h3 B) w9 t6 ^2 A; _ {
{
0 c8 F6 z' a) O B while(!(dw_temp&0x01))
4 m5 c6 ^) ]6 a6 \8 ? {" O- X7 Q* d% |8 o" |) H3 p/ A
GetPortVal(port,&dw_temp,1);
2 ^: x4 h; \% Y: ]/ i7 T dw_temp=(BYTE)dw_temp;
( X3 {) V1 R7 I5 G Sleep(50);7 D7 j) S- ?3 \6 |: f
}
3 _ h0 |: c% l7 Q }4 V7 r/ Z$ Y* e |$ D: k3 l m/ t
7 O( N2 O3 a( C0 S6 \
} |
|