|
|
最近在写EPC的CPU温度 风扇转速获取方法$ Z& Y* M% h+ S) J, C
0 w- Y8 D% W% `2 i) P问题
1 q! h4 w4 x7 m" b( A3 W* T在获取CPU温度和风扇转速后: J- v! _2 R; k
再次循环获取 CPU温度,数据就出现错误了,为什么? \9 x4 K* f9 g( Y
做了缓冲区满空判断8 X. t/ o; g8 x2 B/ i3 r2 a
下面是判断代码
3 W# [ H$ Z$ F- ?; \4 x+ ~ d% n' s# {+ _: j( J9 q/ c
void check_buffer(int in_out,int port)
4 ?+ p2 c) k4 o{
- [# a* j3 Z* a- m: I; { DWORD dw_temp=0;
" T' k) X. d# L8 s4 a3 [/ P+ y2 ] GetPortVal(port,&dw_temp,1);6 ], D" Q' I8 e! i4 E7 i
if(in_out==INPUT) ; M! R2 {6 j5 ]* t" [) D- m3 \
{0 A9 ?1 _: ^3 i* R& x# z# o8 K2 [3 E
while(dw_temp&0x02)7 C$ X6 i1 _1 V3 p5 q
{
4 Y a, F: ^) Z& p# S GetPortVal(port,(&dw_temp),1);$ y* y# _/ @- N9 O# _6 q
dw_temp=(BYTE)dw_temp;
( J; F6 l( x6 B/ t( _ Sleep(5);}: K5 k- p# t" J, n
}1 ~( X* n! R$ ~, K& q
else if(in_out==OUTPUT) 7 |" |5 Z& P- o2 _2 F7 T o
{/ Q$ ~$ f, |# ?, x6 Y8 @$ ^- ^
while(!(dw_temp&0x01))
4 A" d# q7 I7 \" U( I: f) c9 o; W {9 B# |+ i, w- p) o
GetPortVal(port,&dw_temp,1);
L, x+ v; j1 m" `. H dw_temp=(BYTE)dw_temp;, A) D5 V) ?0 h/ t
Sleep(50);
& u- P! g w# [" } }
q+ C" @' ^+ G- y/ Z }
% W0 O- i& q5 B" i( y
4 x7 ]% ?3 l' }8 \} |
|