|
|
最近在写EPC的CPU温度 风扇转速获取方法
8 k3 `& T" ]! G' H2 T
& ?) f9 J/ s5 G: L+ S问题 h3 r& y' O3 ^" |: f4 S
在获取CPU温度和风扇转速后
0 k2 t$ N8 V! \: z' J再次循环获取 CPU温度,数据就出现错误了,为什么?3 ~5 b9 q9 Q5 c1 {" v
做了缓冲区满空判断) w# j) Y. g4 `
下面是判断代码; p" ~% j7 G9 p I
0 B, @! u/ e! S [& evoid check_buffer(int in_out,int port)
, k3 G; p* v4 {3 i g7 ~{4 |& `- v8 Y& w) p% j1 t- w
DWORD dw_temp=0;
" X' _! Z# H7 P GetPortVal(port,&dw_temp,1); L' a a* F0 D1 S$ v
if(in_out==INPUT)
+ Z/ ^% w, r4 ]6 {$ f7 ~3 N, { {. b3 k1 t8 V7 P% J- V( A; d
while(dw_temp&0x02)# @! L& z5 b' C& A6 O7 J
{
6 J, K% R' Q6 ?: S* Y3 A" s, Y# [ GetPortVal(port,(&dw_temp),1);
2 z8 D. d. ~ q dw_temp=(BYTE)dw_temp;
6 {! s7 V2 B$ g7 C; m Sleep(5);}, f( L$ q; R( S: d/ m4 v- P& p
}1 f7 x; j4 |; d* u$ h
else if(in_out==OUTPUT) : y3 a; b& L% l; o( {7 R
{
/ N1 Z: X- |1 n& i) z while(!(dw_temp&0x01))* x8 }( r2 \' u
{
6 N5 p, T4 |0 ?# [2 J GetPortVal(port,&dw_temp,1);
7 q* \0 ~( u5 C7 ] dw_temp=(BYTE)dw_temp;
" ^( j) Q, t: B6 p: j$ p Sleep(50);+ N/ d0 Q% n8 j+ r6 R2 R" r
}
3 r/ n" \' H; x0 J+ T) d }5 z4 ~, E# |3 g8 |$ m5 x& a
) F# O- t3 j0 I( ~3 g} |
|