|
|
最近在写EPC的CPU温度 风扇转速获取方法# V/ j( h" ]* ?" L
7 I* A) R& r# }" r: K) t' u2 D
问题' \# R2 C+ J5 A/ I0 T0 O* S
在获取CPU温度和风扇转速后
o7 y% W$ v0 O- | z8 K7 z2 x再次循环获取 CPU温度,数据就出现错误了,为什么?/ o+ S" T, m: |/ ]' [
做了缓冲区满空判断7 D! w. K8 T. V6 }7 {
下面是判断代码, A$ |* {1 p# x5 k
+ J8 b* I, b% z- tvoid check_buffer(int in_out,int port)
6 e( i) N( y& A$ Q8 ]2 L{
) X& u, M7 m3 B1 \$ M DWORD dw_temp=0;
- M0 _% J! v" y/ K8 e4 o- c; X GetPortVal(port,&dw_temp,1);- `' {" w( q$ f. v& O: h
if(in_out==INPUT)
U$ y0 h* N5 _7 q; S {: A) p) O" v2 q8 A* |! I
while(dw_temp&0x02)
3 U2 j, K" H S6 k {
x8 A; s8 @* h, ]7 \ w9 _) u GetPortVal(port,(&dw_temp),1);
! |# N& u E+ s: x0 z( {+ y dw_temp=(BYTE)dw_temp;9 A& ]5 ^# b4 s
Sleep(5);}
" i7 `4 {1 @2 q, r$ V& [2 k9 o" Y) h }$ r/ }9 [: _: q5 ^6 y
else if(in_out==OUTPUT)
. W* r; c: x6 b{
" b/ @3 o7 t. h6 [0 @( m2 g while(!(dw_temp&0x01)) @+ k. ~$ ^9 y
{
. b, X) J" h2 r( a GetPortVal(port,&dw_temp,1);
0 U' o4 F; d+ m5 T' Q) r dw_temp=(BYTE)dw_temp;
- V( M; T& N' a, F4 W' U Sleep(50);4 D5 M( x: c* W, f
}
; L4 _' q0 V4 w5 E) W }$ m: h" C# \) L4 V! o
) m7 i3 l- M1 P8 q5 ]0 r} |
|