|
|
最近在写EPC的CPU温度 风扇转速获取方法
% w$ z/ U- v6 k# k3 y7 a! V/ G& o1 m: [
问题& G7 v. K: J1 ^
在获取CPU温度和风扇转速后
0 G2 m$ t) ^& V' J! q: b再次循环获取 CPU温度,数据就出现错误了,为什么?5 U9 ]6 g( g+ f( M
做了缓冲区满空判断
. |$ q: ]& _" X3 ?! D下面是判断代码$ A. }+ R9 A2 y. j# z
# V z7 Y$ B+ R$ ^) ?( H; m& z+ c$ p
void check_buffer(int in_out,int port)
% t' }* _2 \9 s( v7 N{
" l5 e+ B# X8 R, @" {7 A" K& Z DWORD dw_temp=0;+ e" S; L, e) w% R. O4 e0 c
GetPortVal(port,&dw_temp,1);
! `. Q/ F/ L8 q) s+ Q8 I/ p if(in_out==INPUT)
6 c, n( D8 k; d7 l {. F f% U* {' W& h* |
while(dw_temp&0x02); I7 O1 h) N4 }" Z4 h' w
{2 s+ f! }6 |4 x5 N8 ]
GetPortVal(port,(&dw_temp),1);7 a6 z( e0 k* q9 W+ B( X8 O
dw_temp=(BYTE)dw_temp;0 a: H7 o( v, Z0 F, x
Sleep(5);}3 z5 S5 Z+ X' J1 q. g" p
}
& S/ h* o1 M* m. c5 N else if(in_out==OUTPUT)
0 c! D7 ?* l" a7 x2 j& u$ C{
/ N, F! k7 L$ f5 W/ t( I while(!(dw_temp&0x01))8 C/ v9 r! h3 u$ z6 }8 o
{
: ]. ~4 [! s7 H) O4 u GetPortVal(port,&dw_temp,1);
6 o+ F0 Z0 h+ l7 I dw_temp=(BYTE)dw_temp;% n6 ]4 }* [1 P' A: @2 A
Sleep(50);2 a U, f& X1 F6 Z4 w
}
" n b. \8 n2 ?+ s1 _5 t5 z. C0 F }& M }
/ O! N( }% U# t3 K
, ^: j4 z3 B9 G: H} |
|