|
|
最近在写EPC的CPU温度 风扇转速获取方法
8 U# c2 ^- {/ G0 y- R" [+ r7 V' m
! S! i' N: h5 Q, t问题
3 n9 Q, f+ M& n" v# \5 \; d' a在获取CPU温度和风扇转速后
9 t- B9 W9 \9 M/ Z. ~再次循环获取 CPU温度,数据就出现错误了,为什么?4 n4 b( X$ G6 f) `7 I
做了缓冲区满空判断
# r5 @- f9 Y+ H5 S* I6 H; q f! \下面是判断代码
: \ |) ^# `0 H+ L5 L' H. P. x/ x+ q8 f4 S$ F& f/ K6 w
void check_buffer(int in_out,int port)
: G, z2 W7 S0 h# Q; ^* I5 T- @{
2 S+ R4 V/ a1 s' g" ]9 f8 G0 S DWORD dw_temp=0;
( z5 {- @$ y& g2 m" e GetPortVal(port,&dw_temp,1);7 }/ m/ d1 T U
if(in_out==INPUT)
; H) _# v& B& b4 F$ d+ Z {
: w9 u0 L+ e' n2 p! ^+ ^- K while(dw_temp&0x02)8 G4 ?( R3 V: c% Q( w
{
; M* W0 f. y, q GetPortVal(port,(&dw_temp),1);
+ |% D9 B' b3 b! t2 ^ K# \& Z dw_temp=(BYTE)dw_temp;
1 o( B$ H$ k3 V Sleep(5);} j) {# a, j2 q N# c D
}
. E/ Z, n* p5 j+ M6 `9 X else if(in_out==OUTPUT)
* F( ?& G& T% R' e& V: f- H: Z{
; \( u, A5 [: F: e1 g" {1 ~- z while(!(dw_temp&0x01))
/ z0 ?( m0 ?5 M# T: y! I" U {
9 m9 M! [+ j- t( R GetPortVal(port,&dw_temp,1);1 x4 q" I- O! A6 T7 s# W. }1 f
dw_temp=(BYTE)dw_temp;1 O# k# w, f8 q: q. V6 {' F2 b
Sleep(50);
0 c1 `4 x: { u& g% `! f }
% C: S" L& N7 }1 s" V& z+ ^ }1 X# X$ Z9 Y+ h, C6 v
# L+ F0 k& g; h9 {0 d( }# z
} |
|