|
|
最近在写EPC的CPU温度 风扇转速获取方法
/ ]* ?0 d, {- L4 j6 [5 w, w# Q+ g+ |, _
问题
' |+ z/ V. Y. K( Q& l* R# W" I/ P" e在获取CPU温度和风扇转速后% ]7 y6 A" k& W/ O1 x8 k
再次循环获取 CPU温度,数据就出现错误了,为什么?
6 u( j- a' U9 V, e( K( n: y做了缓冲区满空判断8 U; |) m$ D% M% N
下面是判断代码
# o' V. e7 w. S g/ n4 B2 r5 S, v$ b( i5 U; o+ x( j
void check_buffer(int in_out,int port)5 P& z% y7 d9 s
{9 o! z' E. L. m/ o, |
DWORD dw_temp=0;4 C7 t( b0 _: Q+ E# w/ a
GetPortVal(port,&dw_temp,1);5 f( K ~5 T+ p" a2 O
if(in_out==INPUT) z( R' n4 R3 g9 t( t2 i+ J c
{* p6 \! u; Q# Y7 Q
while(dw_temp&0x02)( K! N' z1 Y' \: D+ \9 n
{
& m- Q8 |3 `4 A( O GetPortVal(port,(&dw_temp),1);( o. @3 J( J' P! Z( p! _, I
dw_temp=(BYTE)dw_temp;
5 f# t2 Z2 J+ k* S Sleep(5);}/ N& l$ z& u+ x; v7 R0 f9 {
}
6 l) D; a* f- i6 a" F+ N, ] else if(in_out==OUTPUT)
& T9 |& h& t! ?/ Z7 x6 t{
" P# F6 y' `+ i+ ?; I while(!(dw_temp&0x01))8 C( e5 p/ W) l7 z2 M! @9 Q
{/ a, F1 n( S! p% e9 y& _3 ?
GetPortVal(port,&dw_temp,1);. D2 B6 O5 w2 ?" }4 B, G, g
dw_temp=(BYTE)dw_temp;$ p, S* f! l! f0 E
Sleep(50);
6 X) P) [" n" {) m }
0 F4 A% N: o& U: I1 R# ^3 h }
0 |7 {4 C: [. D5 Z* |* i* C, v; s+ R' u2 v% Y. ?2 e
} |
|