|
|
最近在写EPC的CPU温度 风扇转速获取方法
! d) Y! j; p6 J
3 T0 Y2 M8 }1 t2 V+ j+ { K问题
" m ]$ `: E z+ w/ F) d在获取CPU温度和风扇转速后6 q% l( q: w) o' i$ y4 K5 z
再次循环获取 CPU温度,数据就出现错误了,为什么?1 F$ v# g* R7 ?7 r
做了缓冲区满空判断2 d' n5 H4 A) ]% }& m9 Y4 G" v9 ~; U
下面是判断代码- K3 W) J3 z! q. \* h0 `
+ [4 ?) J! b1 o0 }# Gvoid check_buffer(int in_out,int port)6 K! d/ g7 b. M
{$ y7 q& W `9 G; H4 l6 ?
DWORD dw_temp=0;
8 N3 S$ |' L7 v: U7 a" k+ i% X GetPortVal(port,&dw_temp,1);$ C( f5 x+ n; u0 `5 R0 `& W
if(in_out==INPUT)
- e u! |% E& v {9 W0 a4 }. i1 U& p
while(dw_temp&0x02)
! k0 t5 ]6 k# d+ @ {
7 T$ p' A. U/ _- H2 P8 c/ l GetPortVal(port,(&dw_temp),1);
6 B% ]& ?- d9 y* I+ Z* r: p" D7 D5 ? dw_temp=(BYTE)dw_temp;) Q. A; p5 G; X6 ?8 R3 C
Sleep(5);}
L+ }& q3 K4 J5 l0 o9 |2 H6 } }( d3 Q7 Q3 n7 \+ h) r1 x4 R0 t0 N
else if(in_out==OUTPUT)
5 P$ [; U7 j3 K+ u{
4 ^0 P- X6 H! N( g" ^6 M while(!(dw_temp&0x01))
! O" g. a% b* d3 v Y {, g% V: L/ d7 j: G5 I
GetPortVal(port,&dw_temp,1);- j0 a6 |8 ?. r8 ]' A8 W
dw_temp=(BYTE)dw_temp;
1 D p0 L% a( W- f/ A/ z Sleep(50);7 H3 P5 ~ r' a E: `; q2 e
}: m* K, [* w$ S8 u6 R. {
}% i+ q& f# p1 X# }5 c* H6 d0 t
! j+ q2 X4 B7 V( u
} |
|