|
最近在写EPC的CPU温度 风扇转速获取方法
# ]6 @/ n9 D( n/ F
' _ m; [+ o! _( t \ t5 L问题
$ Y C1 z" ~ g. n在获取CPU温度和风扇转速后- s- Z! Q7 |6 h; _5 }4 w
再次循环获取 CPU温度,数据就出现错误了,为什么?
5 N! o$ L/ k _+ o" @做了缓冲区满空判断
+ k: `" I" k8 q& v下面是判断代码
. d5 T' R6 l, M; c/ I6 Y# Z m" _6 f& J( {% x7 |& t) A
void check_buffer(int in_out,int port)
$ z- d1 U4 w4 h% J6 `{
1 i X; E+ S! u DWORD dw_temp=0;
2 B% r! k& Z" b% P# ] GetPortVal(port,&dw_temp,1);* s% f' ~& H) W3 E" `5 N6 F+ P) _
if(in_out==INPUT) k' M3 ?; ^3 e& n
{! P* f! j% H4 ]0 i! Q
while(dw_temp&0x02)" c4 ~- e/ [3 \% D. N
{# N. o. _+ |+ T# l* l
GetPortVal(port,(&dw_temp),1);6 |- `; r* u$ U6 }7 d8 c
dw_temp=(BYTE)dw_temp;; m2 T; y, m: X
Sleep(5);}
0 V! s! }3 A3 Y. `% i }! t$ h5 _* \$ t" A& P& Z) B
else if(in_out==OUTPUT)
$ {) ?8 T0 n o{4 M/ r/ K% _" P: ~" L
while(!(dw_temp&0x01))
9 l5 b5 g, ?& c. N) { {
2 \# `. ]7 {7 o3 B; k GetPortVal(port,&dw_temp,1);
. u/ |& ]) l( k5 Y* k dw_temp=(BYTE)dw_temp;$ g" e6 H, m2 i6 E/ ^7 L
Sleep(50);! `- Y0 n" ^: E8 {# }) Y1 t
}8 ^' r* s& @+ u: N( N0 s# L
}4 s& b. _" I! @3 A* q
" x5 x0 Y9 k, z+ |$ t) G& {} |
|