|
|
最近在写EPC的CPU温度 风扇转速获取方法
. m& R9 U) ~3 J! x: U* G# w, g' X3 M# v: n" [1 P8 O) o( H
问题, q7 e. ^* N4 V
在获取CPU温度和风扇转速后, l' V, }2 {9 p- B; A, P
再次循环获取 CPU温度,数据就出现错误了,为什么?
2 X$ a2 g: q' o ?7 B1 W* y做了缓冲区满空判断* e; Y* J* l% A* Y0 P* }
下面是判断代码) |; ?# ]) d& w0 n- z% H: W, @% S
. Z# c; m$ W0 Z
void check_buffer(int in_out,int port)
8 Z* z( N- P: Y! O6 ~{
7 p# t- e S0 E6 ?% h, ~2 s! w DWORD dw_temp=0;8 g, p; v |- K% k# v! ]
GetPortVal(port,&dw_temp,1);
7 n: G1 Z( W+ A: q. a if(in_out==INPUT)
) P1 U% l P. n4 U {
$ e9 {1 q9 c" [ C while(dw_temp&0x02)
" u- W3 {! U8 J: _' _) ]. ]1 r {( ?! m1 U |/ F9 z$ |
GetPortVal(port,(&dw_temp),1);
3 t% X+ k( ~3 U' C/ i dw_temp=(BYTE)dw_temp;1 X: Z3 d$ I9 G( [2 j% i {
Sleep(5);}
4 y: R5 g9 A8 V! ] }
! A( e J- z" y: L8 C else if(in_out==OUTPUT) 5 w, I* B3 G* s
{" T; T9 ~3 T; a0 {9 d
while(!(dw_temp&0x01))
v- V; @# f& J4 r: [. B- a {& T( M" p V1 ^! l) i
GetPortVal(port,&dw_temp,1);
, X* x$ j# ?: D1 c dw_temp=(BYTE)dw_temp;
, Y( ~4 | ?. N Sleep(50);
8 F7 k9 D$ b& ^3 C3 w" U" F }
. h$ ~9 [- |6 g. X- p( W; ~ }% j0 j& E' s- H( w5 M
9 A5 @; ^" z% d! o* x
} |
|