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

关于 CPU 温度 和风扇转速

[复制链接]
发表于 2010-2-25 21:21:15 | 显示全部楼层 |阅读模式
最近在写EPC的CPU温度 风扇转速获取方法
2 Q6 o- A  K& l0 S7 D6 h+ [9 G" ]
2 a4 w# ~2 Q" I) U/ U6 j问题) U6 ?& B" Q# s  x5 Z2 X3 N0 U* W
在获取CPU温度和风扇转速后6 D3 }5 s4 {; [
再次循环获取 CPU温度,数据就出现错误了,为什么?& v4 g& u2 Y9 J; s( V
做了缓冲区满空判断
  l( g* k) f) p- t下面是判断代码
- G: @9 B! q, {: H' l
9 S1 x# h6 [' x$ n( tvoid check_buffer(int in_out,int port)
  k/ [4 J% ]6 [8 `{
- k7 \) N% z3 \2 F3 S8 ]        DWORD dw_temp=0;
% D# o! e; E7 s7 [) W3 j        GetPortVal(port,&dw_temp,1);
% L( T2 O1 s  e  j  E4 e        if(in_out==INPUT) / b. S) O# l0 g5 }& A8 N
        {
6 @+ {! m5 V- C3 n+ V1 e2 V                while(dw_temp&0x02)1 T2 s/ m$ }9 P4 ^
                {
- N+ f: @6 H. d' k! G8 y8 ?! n' K                        GetPortVal(port,(&dw_temp),1);( R+ _2 G6 j4 A& x  n4 ?5 M2 {
                        dw_temp=(BYTE)dw_temp;, W0 A( Z* I& `
                        Sleep(5);}/ F9 ^9 d5 r: F9 `+ k/ a
        }
/ K3 E1 f  h1 u7 x3 u        else if(in_out==OUTPUT)        
  c2 ]7 s8 ]$ E{
; ^1 X8 @9 M# v6 `                while(!(dw_temp&0x01))
" K) V3 N) A" C% J! }6 s                {. Q3 N. X) H  O- [  }
                        GetPortVal(port,&dw_temp,1);
+ O5 c" O8 l3 W; C; u$ J! G3 a# H                        dw_temp=(BYTE)dw_temp;& ]) I4 q/ g; Z" U! Y8 y
                        Sleep(50);' e6 ]3 c+ w) q2 `2 k
                }, {0 ]4 Y" _. D9 c) V2 J
        }
3 _: Q! d0 Y% E3 h; n9 U  c& O' w6 A: h1 C2 M
}
发表于 2010-2-26 15:24:49 | 显示全部楼层
能告诉我你是怎么读的吗
回复

使用道具 举报

 楼主| 发表于 2010-2-26 16:28:00 | 显示全部楼层
已经找到问题了2 n" k9 u/ N" l
在setportval 前后 都要进行一次缓冲区输入检测,原来我只是在setportval 前检测了,后没检测。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-5 17:39 , Processed in 0.080744 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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