|
|
最近在写EPC的CPU温度 风扇转速获取方法* ]( {, p9 P3 ]5 y
8 w# @4 m6 M( ]: ^: J. D" T问题' }$ G6 I5 v7 }, a5 }
在获取CPU温度和风扇转速后
/ ]+ b& u7 l# I1 t( O再次循环获取 CPU温度,数据就出现错误了,为什么?
* X* {; U3 H8 T: o( {3 D! j4 c( g# R做了缓冲区满空判断! S3 ~9 ^3 h4 V0 v% q6 D' Y& V# l
下面是判断代码0 {2 a" X# R1 `+ [* v6 r: A
N! a: U- U7 v& J" o! M
void check_buffer(int in_out,int port)+ V7 E }1 d( m
{
$ n3 B' k* z, b' y" A0 W DWORD dw_temp=0;, u, Q; M9 |- }3 Z% Y/ w- x
GetPortVal(port,&dw_temp,1);
v) a7 P% |3 R4 d, w! R if(in_out==INPUT) 6 T6 |. o! m; ?2 g
{
1 M+ l1 F9 q" ? while(dw_temp&0x02), F v* }, v$ V6 b
{
1 E5 Q/ m- l; W" N J; Q" w$ v GetPortVal(port,(&dw_temp),1);/ M, ^2 u/ h2 r5 Q
dw_temp=(BYTE)dw_temp;
+ u S* G/ t! b3 v Sleep(5);}
& L4 n% A, F: g6 | }
; w* W2 t3 L" K l' p& k else if(in_out==OUTPUT)
: H, _* I# Y1 c5 |9 [. K6 g{; V2 m. k( l/ O$ q3 N. i( J8 v' |
while(!(dw_temp&0x01))1 E# t. f% k! e& E) q4 ^3 B8 ^8 e* n
{
1 V' {; y3 Z& j) A, e( n! V GetPortVal(port,&dw_temp,1);" P' u( W& \3 I* `8 i( [
dw_temp=(BYTE)dw_temp;: y( | ~3 G: C% r# ~
Sleep(50);
% S. r, Y# R, ? }
' F) P+ V! ? W! y5 I- v8 t }) q, X% i4 |) i6 h
' |9 a" `; X2 m6 @8 b3 \% U
} |
|