|
|
最近在写EPC的CPU温度 风扇转速获取方法
- x2 S# g% s# J
9 g1 d* l0 |" J) J4 X2 l问题
8 Y" [, @( O& @; R2 M0 @在获取CPU温度和风扇转速后( r# c0 j6 I' I2 l/ n1 x1 ~% ?( r
再次循环获取 CPU温度,数据就出现错误了,为什么?( ^: |1 H7 b4 W& D/ h1 C
做了缓冲区满空判断3 K* [2 a+ }4 }/ M* C
下面是判断代码
W; v( \3 w, P/ ]7 c$ G& h
2 j/ E% t; h- H2 g' H5 ~$ o. wvoid check_buffer(int in_out,int port)
3 m( Q1 e/ d* X, F8 o T) z! w{; c3 \$ P+ X4 ?3 q; c
DWORD dw_temp=0;
7 J/ p+ q9 v" J GetPortVal(port,&dw_temp,1);- T- W( w+ f" X d
if(in_out==INPUT) + p" k: D3 i3 p, }! r" G
{
" d% X9 b% X" c while(dw_temp&0x02)& V0 l1 Q; r6 p; O& M' t, L! ^, w
{
k' X* c; j. z' m$ I2 \ GetPortVal(port,(&dw_temp),1);
$ R& o E. p& t& P1 r( [: s' i5 J dw_temp=(BYTE)dw_temp;3 I# [9 h$ D1 `2 p7 s
Sleep(5);}( g3 Z7 u/ f; N! M7 ^
}
p' e& c- G- d5 u9 @9 c else if(in_out==OUTPUT)
1 Z7 F9 V/ Y" [& ]9 H3 T5 A& w{- `5 K/ L) Z, Y. w
while(!(dw_temp&0x01))
' t& k k N6 d- x {' {1 K4 H h+ P& r; x+ b$ o
GetPortVal(port,&dw_temp,1);
1 P7 U1 S2 N3 f" v8 U0 A dw_temp=(BYTE)dw_temp;
- \# E: w+ t( h ?& h7 ~! T( L# r% P/ a Sleep(50);
) m0 u, I4 C" X7 U, A7 V }3 ]+ e- ?" L% E; v# g
}
( t& Y5 |0 i. U" w8 A* f/ k
! v5 i, E9 ~7 N. ]8 l% D) I} |
|