|
最近在写EPC的CPU温度 风扇转速获取方法
5 B. a$ z! A* k& R% \- V7 S5 Z& S9 z8 E7 m5 Z& ~/ Z( E
问题3 ]3 O0 O7 y1 ^! y1 a" l
在获取CPU温度和风扇转速后
' q7 {# ]( ~. U& Y- w4 d/ P再次循环获取 CPU温度,数据就出现错误了,为什么?
( R" \& x! G% l4 y; K$ @) m% D. e做了缓冲区满空判断! g7 k) t1 e9 h y) m5 Z: H E
下面是判断代码
4 J0 {0 W9 v, y& u7 A3 X9 J3 n: S9 a! E
void check_buffer(int in_out,int port)
7 [3 ?4 u' l2 a5 C- x{
0 L& Y2 q' E3 R/ D% ^( V8 G DWORD dw_temp=0;, A( z3 o* e1 x, h# { ^0 Z4 a
GetPortVal(port,&dw_temp,1);
* z2 O) C; X6 F O if(in_out==INPUT)
9 i* R& O: f Y9 Z* { {
. I3 w2 [+ ~" i. X H4 m5 T3 h9 v while(dw_temp&0x02)
% J: \ _+ F5 O" H0 Y B" t {# O. U! V6 N. v' P% Z1 h2 m
GetPortVal(port,(&dw_temp),1);
$ U+ g$ z! x8 H$ H5 ]$ d4 j, u6 P dw_temp=(BYTE)dw_temp;
+ L) R. o' D* b7 W/ G Sleep(5);}# u, E; i6 K6 a J! I2 u
}8 h" Z) i; s4 ~. N0 ?
else if(in_out==OUTPUT)
/ F1 q! S1 m/ c{
( w+ _. F& g2 L/ g( {3 Q8 ~$ k while(!(dw_temp&0x01))
$ P5 i# }& E4 I3 y5 C( B; X/ p. x3 ~ {% a3 q; u' _/ l' @
GetPortVal(port,&dw_temp,1);
. U2 o) A6 ^% [6 O8 ?9 O dw_temp=(BYTE)dw_temp;
4 b T6 V6 u, t# j! o4 ^. {7 G- J1 e Sleep(50);$ n+ J7 v6 H$ q. p$ Q1 l3 Y
}
/ m$ V* L/ O" R }1 H, |& K+ W0 Z) v$ i6 B
4 S9 \! \& U& ?. ?! d' ?
} |
|