|
|
最近在写EPC的CPU温度 风扇转速获取方法/ I( P' \" H, s+ V5 }; r7 C
9 {# Z1 [8 o- M
问题9 ^ Y! n# w7 e t8 G% i$ a
在获取CPU温度和风扇转速后& U# r- N' |$ K$ E- B2 A
再次循环获取 CPU温度,数据就出现错误了,为什么?# h# E( ^- y4 u8 E" _
做了缓冲区满空判断
1 i$ V+ {0 d; V; N- m下面是判断代码
0 o% N9 z. V- q1 @% W! K! d0 l# H# i. _* H- l7 h6 s7 h; e, Z
void check_buffer(int in_out,int port)
y( i+ B' @4 T6 p% E8 v. O. d# B{
" [4 s7 B5 w4 {. D DWORD dw_temp=0;
" `. _* u* _1 q4 o/ | GetPortVal(port,&dw_temp,1);) f( V' ~, C$ n
if(in_out==INPUT)
; D7 J+ g9 v& t U1 l; p; H {
; v C5 r2 J1 N while(dw_temp&0x02)
! w( y! W% \" X; z, V& p2 r0 x5 G {9 J$ H- }( Y2 L- D* v' \% r5 |
GetPortVal(port,(&dw_temp),1);
# K- }& O; k5 G4 F" Q$ @5 d- [( ` dw_temp=(BYTE)dw_temp;* S! b! J7 t; f1 z3 [- f) w
Sleep(5);}& q4 k- C: j4 V9 W
}
% |3 R ]- a. ` else if(in_out==OUTPUT) / y6 I& m ~, G# [2 C) e
{
! f2 |9 \8 L. | while(!(dw_temp&0x01))1 m4 R, c0 |! a* k0 |3 b
{+ |5 z( P& r% u& e) {3 n# R0 g& q
GetPortVal(port,&dw_temp,1);4 _7 z1 B* i8 u3 g/ F: k& |0 I
dw_temp=(BYTE)dw_temp;6 n/ a& z, h& F- a- }9 F
Sleep(50);9 [$ q! S% U' ~
}
( M; \$ ?; y8 g9 _" u( J! c }
- I" M# A- Y+ Z f# p7 r
( B. ^8 d: X* Z. k5 V: a, x} |
|