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

关于 CPU 温度 和风扇转速

[复制链接]
发表于 2010-2-25 21:21:15 | 显示全部楼层 |阅读模式
最近在写EPC的CPU温度 风扇转速获取方法$ x* y8 [9 }9 `: N) L

5 [  ?+ L2 a9 u: h. P2 }( {, W7 f问题7 b+ R" E# x% n1 N' s4 B8 w
在获取CPU温度和风扇转速后
7 a  A) [! V# @+ G3 w再次循环获取 CPU温度,数据就出现错误了,为什么?
+ b' |2 x. q9 V/ S2 e做了缓冲区满空判断: U# Q7 X4 i+ T1 _5 ?
下面是判断代码
" l  [& I0 R. H& @! r
- Y4 }9 y7 o3 n$ G' h" v$ o2 \void check_buffer(int in_out,int port)7 s, P  }) Y4 }5 c1 f7 Z
{
% h3 R! t, l5 n) _, q( ?: l8 F        DWORD dw_temp=0;
0 l: K' V2 B! y4 r: x7 @$ e" m- r: P. ]        GetPortVal(port,&dw_temp,1);
  X  N2 ~1 L* p/ K        if(in_out==INPUT) 2 J% L. B& C4 P0 ~) p* v9 H# M
        {
% F5 Q# t# s) ?, F3 Y0 ~! b, [" |0 Z& j                while(dw_temp&0x02)
5 `: A) I7 |' e: z                {( O$ S) B, Y1 |+ G
                        GetPortVal(port,(&dw_temp),1);
& x1 ~1 Q/ s  S: I, t) N                        dw_temp=(BYTE)dw_temp;
' n& _. R. ^5 K4 N( U                        Sleep(5);}6 u$ {% [+ B; v& a! p# a6 V
        }
8 g0 d" f/ e$ e. }1 \        else if(in_out==OUTPUT)         $ t# w! M" P/ |9 K2 c: Z: ~) q' y
{
9 w. t& F' q$ P/ M5 b* q                while(!(dw_temp&0x01))
  }: R8 O& V' ^5 E% M% u                {
5 Z  n8 w, m5 W' M+ f# k                        GetPortVal(port,&dw_temp,1);
( @. I: K: S" P2 r9 k- j4 H                        dw_temp=(BYTE)dw_temp;
7 W" B  Y, F9 D# F' |                        Sleep(50);  @* b0 e& G5 C( L% n0 ]
                }
; c2 g* G$ E/ h) a        }( K: w( c+ F* E& H# Z
0 d- _0 x% S6 h7 p
}
发表于 2010-2-26 15:24:49 | 显示全部楼层
能告诉我你是怎么读的吗
回复

使用道具 举报

 楼主| 发表于 2010-2-26 16:28:00 | 显示全部楼层
已经找到问题了
+ ~# x. C5 d( O6 q- w# P: ?在setportval 前后 都要进行一次缓冲区输入检测,原来我只是在setportval 前检测了,后没检测。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-18 22:43 , Processed in 0.340175 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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