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

关于 CPU 温度 和风扇转速

[复制链接]
发表于 2010-2-25 21:21:15 | 显示全部楼层 |阅读模式
最近在写EPC的CPU温度 风扇转速获取方法
6 _1 q" r8 q4 x3 f) K: ^
9 {( e  N0 R& ]5 v$ v( U2 i+ b- d  ]问题% R' Y) `$ ?# I2 E! A1 W
在获取CPU温度和风扇转速后* s& s& Q6 x8 I& x) X" q" M
再次循环获取 CPU温度,数据就出现错误了,为什么?; f2 O7 o# n' X' D8 x9 I) b  i
做了缓冲区满空判断
( p5 i0 M! M0 t9 \  k3 K下面是判断代码: i. h* {) g/ \% o

0 K, D$ W& C- h$ \% y8 Ovoid check_buffer(int in_out,int port)
% g" K3 {2 p3 J' _/ O{' X* z2 w& |- I0 n' v7 V( ]
        DWORD dw_temp=0;
* Q- j$ Z9 h9 k& u  r$ C6 v        GetPortVal(port,&dw_temp,1);+ L; p" @+ ?" h& N2 D9 B7 g
        if(in_out==INPUT)
8 P- b( \8 Y$ k, Q1 j1 h        {" c( E5 A1 L  r2 L
                while(dw_temp&0x02)
& F( n. n5 O; M: Q7 E                {8 H; M9 X5 g" L$ V0 {. _
                        GetPortVal(port,(&dw_temp),1);
2 Z, G% K3 F4 {' ]2 M                        dw_temp=(BYTE)dw_temp;
1 t+ X2 o5 n1 k! W                        Sleep(5);}
8 W+ c3 h; g4 q; T  c- P: T& `; r        }
6 N$ h9 M7 x9 z$ L% X9 b3 u! x        else if(in_out==OUTPUT)        
% O% P3 U: p) D% Q7 M  V- Y{  Y, E9 K1 @" Z7 [( X" L
                while(!(dw_temp&0x01))
) d# ]! ?3 o  Y                {9 o/ K$ b7 R& X2 m3 u
                        GetPortVal(port,&dw_temp,1);
4 |0 w' @7 m: Q: I4 Q6 d3 p& N                        dw_temp=(BYTE)dw_temp;
' A) z* ~% V+ L5 _" _6 ?7 [0 y                        Sleep(50);
/ h; C! x0 L$ O; q$ h" s                }
# X0 L0 ]; L3 i  F; Q+ Z* M) R5 p9 h4 W        }4 B7 V% c/ D4 p# s* \" l( {2 s

) E' W% S0 f4 d7 G}
发表于 2010-2-26 15:24:49 | 显示全部楼层
能告诉我你是怎么读的吗
回复

使用道具 举报

 楼主| 发表于 2010-2-26 16:28:00 | 显示全部楼层
已经找到问题了+ \* l$ i( Z6 t5 U
在setportval 前后 都要进行一次缓冲区输入检测,原来我只是在setportval 前检测了,后没检测。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-10-12 08:43 , Processed in 0.051316 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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