|
最近在写EPC的CPU温度 风扇转速获取方法
% D+ S+ r- P* k% r5 H$ y" u
9 V' Y ~' _) X" f" c9 j8 U问题
& j4 a- {6 {6 T* [在获取CPU温度和风扇转速后% m! @) q9 p. l# B0 h$ g$ _
再次循环获取 CPU温度,数据就出现错误了,为什么?5 [: l& m7 V' y: p1 s9 o. t6 K
做了缓冲区满空判断" ^0 G& ^) ~: X* n" z% J
下面是判断代码
% F# i; \4 \! X5 v4 ~
. Z; R) C3 L! C( g* C% [void check_buffer(int in_out,int port)- a0 }: l! _ J: C
{9 A' z; }3 h$ U# U* R
DWORD dw_temp=0;
& U5 r0 W6 G, f4 g GetPortVal(port,&dw_temp,1);
! B" N- [: b+ I, l if(in_out==INPUT)
' ]5 l) \8 J( k {! [7 d7 ~! g5 U0 O" V
while(dw_temp&0x02)5 w5 H% h5 P8 W, i
{
6 B, e, n. V- e3 C6 [0 v# I GetPortVal(port,(&dw_temp),1);
# z2 k) Z* @- R4 o dw_temp=(BYTE)dw_temp;7 X) l& D* f, ?# w9 A, E
Sleep(5);}( P$ n7 U% j: _
}
1 E. B- {* M' S else if(in_out==OUTPUT) 6 [7 H9 J" s% \$ |- x" f2 l9 p% k" A
{! t. Q' c" e) l$ K* k
while(!(dw_temp&0x01)), y& E( G* J2 a& d1 M
{
# P4 B# S# h# V( X( R2 X GetPortVal(port,&dw_temp,1);
6 c6 [6 ~$ K: G& k9 ]) v dw_temp=(BYTE)dw_temp;
% ~! n+ A* {* T/ F+ C/ F6 K9 D Sleep(50); I a7 L2 U9 G9 E# P/ K! @2 j: N
}. ]/ d1 V5 `) I* v
}
B6 k, t. W7 G- a% K2 t8 B6 D
; |- q0 j: ?3 B) H4 i1 X5 f7 L, d} |
|