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

关于 CPU 温度 和风扇转速

[复制链接]
发表于 2010-2-25 21:21:15 | 显示全部楼层 |阅读模式
最近在写EPC的CPU温度 风扇转速获取方法
* N" G9 I* O' f7 f8 V* G: p( A. O9 N+ C/ Z# a& X+ k8 J: G: w
问题5 Z1 D9 \+ @7 B1 l4 D
在获取CPU温度和风扇转速后% M3 }% H: O- x8 u: [
再次循环获取 CPU温度,数据就出现错误了,为什么?
5 W& D$ D7 a3 U- G2 Y做了缓冲区满空判断
& a3 P- u0 d2 D; ~: v下面是判断代码
, c. G! _5 P) O9 Y1 d# S
# t# F) o5 G7 E. u( {5 X0 u+ qvoid check_buffer(int in_out,int port)8 X! S# ~- G5 k  d
{2 c2 ]9 b; x) c  R# k, g( j
        DWORD dw_temp=0;
4 ?* ~4 M2 l4 r1 l% _/ c4 f' U( Z        GetPortVal(port,&dw_temp,1);
+ e6 u& K" ]' Z" W$ r        if(in_out==INPUT) 5 @# F3 o" w: t# s9 O, u2 u, x
        {
/ G( t! N2 [  F( E0 ^                while(dw_temp&0x02)
; i/ y% r: S1 C) j) @( R  b! O                {
0 ~9 I+ r! C0 `3 C                        GetPortVal(port,(&dw_temp),1);+ ~: v6 }/ P* S; q% ^5 O4 |2 g% Y
                        dw_temp=(BYTE)dw_temp;5 i6 W4 f; D% e! ?- B& r  }
                        Sleep(5);}- i# m3 ^' M  F/ i0 ]- L$ T
        }
+ p9 E+ ?9 V4 t5 [  t        else if(in_out==OUTPUT)         7 D! J0 [$ H2 w+ v9 `
{
- u% E* }8 q3 v& ?                while(!(dw_temp&0x01))
/ I. Y- u% _" k7 z7 P: a                {6 G3 T4 v, I  v& p
                        GetPortVal(port,&dw_temp,1);
1 E8 ]0 o3 B6 D2 Z                        dw_temp=(BYTE)dw_temp;
- ^" U- D  p7 T: L! V9 G" e                        Sleep(50);
; K: P* D' ?/ K% F  E# h                }
( h$ b' X4 S8 Y; C9 L        }8 S. ?, @; p/ m3 U
6 u) v3 ]1 `/ a& S/ T  s0 ]. {
}
发表于 2010-2-26 15:24:49 | 显示全部楼层
能告诉我你是怎么读的吗
回复

使用道具 举报

 楼主| 发表于 2010-2-26 16:28:00 | 显示全部楼层
已经找到问题了
9 k) l. M2 L2 n0 c7 V$ p+ \在setportval 前后 都要进行一次缓冲区输入检测,原来我只是在setportval 前检测了,后没检测。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-6-13 18:46 , Processed in 1.695819 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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