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

关于 CPU 温度 和风扇转速

[复制链接]
发表于 2010-2-25 21:21:15 | 显示全部楼层 |阅读模式
最近在写EPC的CPU温度 风扇转速获取方法
& o( ~1 v9 W: E3 X0 t9 ^5 Z0 v- m7 @6 G1 R2 B& ^
问题
. G: Y9 a% D& ^, M/ P. ]* u1 P在获取CPU温度和风扇转速后( h2 V3 v! n% z9 F
再次循环获取 CPU温度,数据就出现错误了,为什么?
* ~$ e, q7 q4 E. Y& L  f& D做了缓冲区满空判断
5 s& M' K$ H2 |( i+ ]下面是判断代码2 G+ c$ N8 b* @7 ?: n) n
" \% g) E! T  y& U6 k
void check_buffer(int in_out,int port)
( X3 M  @0 V. x5 |$ Y{
6 n& Z) F' o4 G* u+ y: z        DWORD dw_temp=0;9 O( O2 t! K% `( N5 ^% g
        GetPortVal(port,&dw_temp,1);# g% t" R& }# U6 t  h5 Q3 Y
        if(in_out==INPUT)
- T6 [( o! h# h1 a        {" M2 p& H/ \6 c3 m: t+ P: \: y& f
                while(dw_temp&0x02)
/ x* D$ ]" F* z1 Q1 v                {
. q1 a. A# d& Y4 R8 Y  t                        GetPortVal(port,(&dw_temp),1);+ T4 l( u3 R( x% y4 t
                        dw_temp=(BYTE)dw_temp;
6 N8 W/ V3 o0 B" f1 U$ _                        Sleep(5);}# @, f1 o3 D  r
        }
' W$ L; E6 [2 {* E: E8 K        else if(in_out==OUTPUT)         2 r+ C% F7 \6 ]3 r0 a( P
{+ N. S$ S& r( m4 d, I
                while(!(dw_temp&0x01))8 Y, p0 P( f" B+ b$ e1 ]7 R
                {
+ t6 e; s0 M$ B# \" l                        GetPortVal(port,&dw_temp,1);7 H" g) l5 `) G3 w
                        dw_temp=(BYTE)dw_temp;) N  o% o6 E" S7 @6 p8 G+ p( e( ]
                        Sleep(50);
7 n! P1 i$ u& _& m5 M# n; y                }
; [; R7 Y" F$ Y5 R: G        }, P& R% J& ?$ g7 N: ]
( x& F0 z. a( a$ d( J
}
发表于 2010-2-26 15:24:49 | 显示全部楼层
能告诉我你是怎么读的吗
回复

使用道具 举报

 楼主| 发表于 2010-2-26 16:28:00 | 显示全部楼层
已经找到问题了# Q  H" V6 l  ?  Z, i  w, J- l
在setportval 前后 都要进行一次缓冲区输入检测,原来我只是在setportval 前检测了,后没检测。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-16 12:34 , Processed in 0.021597 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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