|
|
最近在写EPC的CPU温度 风扇转速获取方法
. @4 Q' l$ q3 N
+ r. n- k: P) ]$ H2 F$ r( n问题
% h3 X/ R, b2 ^4 s* Z在获取CPU温度和风扇转速后7 u0 Z% B- U! x8 H5 @9 Y6 A; f
再次循环获取 CPU温度,数据就出现错误了,为什么?- G F$ j6 L8 S1 j9 D, l3 Z
做了缓冲区满空判断
' c! F, m" ~' B, m7 O下面是判断代码9 s- n. o# I) G+ a. t! Z* X& g
& P! c" i: o: x# W6 b* H( f% @
void check_buffer(int in_out,int port)
, |+ |& k+ [% z# ?6 [! _3 E{
8 _7 |/ p+ l8 X6 {% U. J8 o1 C DWORD dw_temp=0;
; W) e( E# U' o+ D0 I GetPortVal(port,&dw_temp,1);
# C/ H) C; ~. y# N% J# ~& c if(in_out==INPUT)
$ o2 u, g# E8 _ {
, R$ q8 [( k8 m+ u" y while(dw_temp&0x02)3 Z' L8 J* y) @9 T T* S3 E7 T
{1 V" H* n7 d$ \9 x
GetPortVal(port,(&dw_temp),1);
3 ~3 _$ ^% R( g1 H6 V' { dw_temp=(BYTE)dw_temp;
! V4 w6 u3 j" g8 k Sleep(5);}
2 N6 b1 j8 l$ n }
5 F$ v* m4 Z! A; n else if(in_out==OUTPUT)
9 Q/ t, j1 f8 p8 R4 B{
( ^0 z& L$ y0 V1 |6 h! v# q while(!(dw_temp&0x01))( R" C* l0 \5 L' B5 o9 v
{! v8 M) |6 G& b# U) W1 @
GetPortVal(port,&dw_temp,1);! H1 s0 f- H; H1 t( B6 V& X9 O* d" k
dw_temp=(BYTE)dw_temp;$ `. w% o8 R' t- }& B$ ^6 d
Sleep(50);7 i$ Z, k1 `8 a: C& {2 P
}/ P% T0 m9 W3 [2 d/ W9 K! }4 Y* `5 _
}4 X& {7 }" x% }8 X. E* y: [
+ w/ K5 M! j M2 \' o% B} |
|