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

关于 CPU 温度 和风扇转速

[复制链接]
发表于 2010-2-25 21:21:15 | 显示全部楼层 |阅读模式
最近在写EPC的CPU温度 风扇转速获取方法2 d6 u$ |' a$ Q6 i+ F
7 s$ `; o/ o; F) w) e, |, |
问题
6 m/ ^# L3 M% Z1 _8 s# I在获取CPU温度和风扇转速后
0 i, @( N2 X- r9 H0 A6 {% n# d& Y( w再次循环获取 CPU温度,数据就出现错误了,为什么?0 ]/ n: \, x. @* C; l1 I' L
做了缓冲区满空判断- b& O" a, W) }7 x6 R1 }. A; H/ b
下面是判断代码
" f# L. k: L7 N" x( C
- g* r. P; G$ [* o  J! Jvoid check_buffer(int in_out,int port). C. q" h4 l' d- C$ |' R8 A- d
{
3 U2 {3 t( ^6 E! ]! B9 P* U        DWORD dw_temp=0;: G4 Y; p& n: S$ O5 T+ q
        GetPortVal(port,&dw_temp,1);
6 x8 p1 K0 @& k$ j0 j) U  E: A        if(in_out==INPUT)
% h1 ^6 H. h& ]6 s: ?+ m1 J        {- `% R! D/ Y9 i
                while(dw_temp&0x02)
: J3 [$ u, X1 w" B, R) C                {4 ]- }0 u( s) j0 H: H* `+ X4 A
                        GetPortVal(port,(&dw_temp),1);
  u- D8 v# h* Q/ U) S                        dw_temp=(BYTE)dw_temp;
7 Y7 X- o7 N9 l5 v                        Sleep(5);}' Q) C0 A+ J/ I4 n5 k
        }
' J- J7 W, z6 S9 S9 Q4 J        else if(in_out==OUTPUT)        
7 S; S9 ]) q  |% ^{
, t' W+ ?' z6 g) Q4 C                while(!(dw_temp&0x01))+ C2 p( l+ B( n: `5 k
                {
0 u7 F: e& ~7 {5 z& {4 j                        GetPortVal(port,&dw_temp,1);8 E7 \# w4 V# {) s  p, q6 g
                        dw_temp=(BYTE)dw_temp;5 U; m7 S& y+ P, K$ Q0 K
                        Sleep(50);
* P5 H6 y# r) [9 \2 N                }2 ~) z: t" V. T! V
        }
; M+ L# c: M. t4 U- f# a+ n% K  y  A2 O$ w/ j) q! ?  p
}
发表于 2010-2-26 15:24:49 | 显示全部楼层
能告诉我你是怎么读的吗
回复

使用道具 举报

 楼主| 发表于 2010-2-26 16:28:00 | 显示全部楼层
已经找到问题了
5 A+ ?! s" K# @在setportval 前后 都要进行一次缓冲区输入检测,原来我只是在setportval 前检测了,后没检测。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-24 00:51 , Processed in 0.026114 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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