|
|
最近在写EPC的CPU温度 风扇转速获取方法
5 n; S$ ~- t: o, @1 H8 @) r" C, ]# ]0 a% P- H& o0 u3 V% r. n
问题. t4 Z( R% f; k$ `) b' A' z" D
在获取CPU温度和风扇转速后
+ A' U+ g1 a* K2 h# N再次循环获取 CPU温度,数据就出现错误了,为什么?; f* P: @# O1 b, X
做了缓冲区满空判断
/ s: O$ d a0 l" Y2 t下面是判断代码
' G) A0 ]9 a) }/ |, c
1 U" H1 _2 g. G5 Mvoid check_buffer(int in_out,int port)# A+ ?' q& G J& p
{
. f8 j# q4 s# h. g( k% f DWORD dw_temp=0;1 G* x4 m4 D/ E+ X; n
GetPortVal(port,&dw_temp,1);
7 _# M3 {( U! I) A8 v. y; ~ if(in_out==INPUT)
2 f& |3 X8 I+ j {$ ]% y7 K1 ~7 p( m$ X# x
while(dw_temp&0x02)
/ m' v: [2 ^2 D+ v; E2 s { K2 ~( ~: G" \ C
GetPortVal(port,(&dw_temp),1);4 b/ `7 r9 W* B- I
dw_temp=(BYTE)dw_temp;
% ~9 B! x' `. o+ P& G$ e( A5 i Sleep(5);}
0 Q5 w! Z, X- A. N5 r: C }
: P+ C/ l" I0 U$ H# c& N else if(in_out==OUTPUT)
" ?9 j; t- h0 f2 P0 I- q4 D{4 R2 Y Y4 P8 J
while(!(dw_temp&0x01))0 i0 k0 r/ x* W7 s0 S4 W
{0 `) y( g2 B# t( c4 z) Z
GetPortVal(port,&dw_temp,1);
: s. u- W, X# |4 m" n, P& P; e/ I# G dw_temp=(BYTE)dw_temp;
) L+ B1 c( ^7 [2 L! W1 X K6 g: f Sleep(50);; O3 U1 g* D# G# p' [8 P
} E/ F) I. U* U
}
' ^8 b2 w) H) T. {6 }6 H
" G0 Q3 M- o: Q7 h} |
|