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

关于 CPU 温度 和风扇转速

[复制链接]
发表于 2010-2-25 21:21:15 | 显示全部楼层 |阅读模式
最近在写EPC的CPU温度 风扇转速获取方法) r2 a% H; ]/ J# ]3 g- X# g5 \

8 ?) L, Z+ C3 h. I" @问题( e5 H7 s5 Y. S/ t
在获取CPU温度和风扇转速后2 R& `& |7 j1 i! {7 n( p
再次循环获取 CPU温度,数据就出现错误了,为什么?
& [/ l& H  K, @6 W: A+ U做了缓冲区满空判断
  B, ^/ D( t9 g- l& ]) P2 g) n下面是判断代码: d* @4 y' x4 U" M: Y
1 Q1 g& `" a3 V
void check_buffer(int in_out,int port)% l4 V; }% u: X; d4 b
{( ~* L6 q; N1 }
        DWORD dw_temp=0;
6 f% i4 S/ ^  E+ \. C        GetPortVal(port,&dw_temp,1);
- F# S% d, L% q+ L5 e        if(in_out==INPUT)
# E& U% q; ~. j4 Y: B, v9 N        {2 R( h. B1 {2 w/ f
                while(dw_temp&0x02)
3 N- Q/ T3 g; Q& y" ^+ b7 ]0 R                {
: F5 M# M9 ^/ Y# s                        GetPortVal(port,(&dw_temp),1);* H( s+ n5 E; u) F
                        dw_temp=(BYTE)dw_temp;  c8 T; F5 N2 R+ o& P
                        Sleep(5);}1 s# O" _: z3 Q6 H! R* ~" T# @
        }
6 D4 a8 a5 T7 d6 ^        else if(in_out==OUTPUT)         . o2 h3 B) w9 t6 ^2 A; _  {
{
0 c8 F6 z' a) O  B                while(!(dw_temp&0x01))
4 m5 c6 ^) ]6 a6 \8 ?                {" O- X7 Q* d% |8 o" |) H3 p/ A
                        GetPortVal(port,&dw_temp,1);
2 ^: x4 h; \% Y: ]/ i7 T                        dw_temp=(BYTE)dw_temp;
( X3 {) V1 R7 I5 G                        Sleep(50);7 D7 j) S- ?3 \6 |: f
                }
3 _  h0 |: c% l7 Q        }4 V7 r/ Z$ Y* e  |$ D: k3 l  m/ t
7 O( N2 O3 a( C0 S6 \
}
发表于 2010-2-26 15:24:49 | 显示全部楼层
能告诉我你是怎么读的吗
回复

使用道具 举报

 楼主| 发表于 2010-2-26 16:28:00 | 显示全部楼层
已经找到问题了
' a1 Z0 t% o# Z4 Z& f0 V在setportval 前后 都要进行一次缓冲区输入检测,原来我只是在setportval 前检测了,后没检测。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-25 03:43 , Processed in 0.038831 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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