找回密码
 加入计匠网
搜索
热搜: BIOS ACPI CPU Windows
查看: 9037|回复: 2

关于 CPU 温度 和风扇转速

[复制链接]
发表于 2010-2-25 21:21:15 | 显示全部楼层 |阅读模式
最近在写EPC的CPU温度 风扇转速获取方法* ]( {, p9 P3 ]5 y

8 w# @4 m6 M( ]: ^: J. D" T问题' }$ G6 I5 v7 }, a5 }
在获取CPU温度和风扇转速后
/ ]+ b& u7 l# I1 t( O再次循环获取 CPU温度,数据就出现错误了,为什么?
* X* {; U3 H8 T: o( {3 D! j4 c( g# R做了缓冲区满空判断! S3 ~9 ^3 h4 V0 v% q6 D' Y& V# l
下面是判断代码0 {2 a" X# R1 `+ [* v6 r: A
  N! a: U- U7 v& J" o! M
void check_buffer(int in_out,int port)+ V7 E  }1 d( m
{
$ n3 B' k* z, b' y" A0 W        DWORD dw_temp=0;, u, Q; M9 |- }3 Z% Y/ w- x
        GetPortVal(port,&dw_temp,1);
  v) a7 P% |3 R4 d, w! R        if(in_out==INPUT) 6 T6 |. o! m; ?2 g
        {
1 M+ l1 F9 q" ?                while(dw_temp&0x02), F  v* }, v$ V6 b
                {
1 E5 Q/ m- l; W" N  J; Q" w$ v                        GetPortVal(port,(&dw_temp),1);/ M, ^2 u/ h2 r5 Q
                        dw_temp=(BYTE)dw_temp;
+ u  S* G/ t! b3 v                        Sleep(5);}
& L4 n% A, F: g6 |        }
; w* W2 t3 L" K  l' p& k        else if(in_out==OUTPUT)        
: H, _* I# Y1 c5 |9 [. K6 g{; V2 m. k( l/ O$ q3 N. i( J8 v' |
                while(!(dw_temp&0x01))1 E# t. f% k! e& E) q4 ^3 B8 ^8 e* n
                {
1 V' {; y3 Z& j) A, e( n! V                        GetPortVal(port,&dw_temp,1);" P' u( W& \3 I* `8 i( [
                        dw_temp=(BYTE)dw_temp;: y( |  ~3 G: C% r# ~
                        Sleep(50);
% S. r, Y# R, ?                }
' F) P+ V! ?  W! y5 I- v8 t        }) q, X% i4 |) i6 h
' |9 a" `; X2 m6 @8 b3 \% U
}
发表于 2010-2-26 15:24:49 | 显示全部楼层
能告诉我你是怎么读的吗
回复

使用道具 举报

 楼主| 发表于 2010-2-26 16:28:00 | 显示全部楼层
已经找到问题了0 R. m2 \1 ]" @- \; G1 K" e. ^
在setportval 前后 都要进行一次缓冲区输入检测,原来我只是在setportval 前检测了,后没检测。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入计匠网

本版积分规则

Archiver|手机版|小黑屋|计匠网

GMT+8, 2026-4-20 03:49 , Processed in 0.039593 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表