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

关于 CPU 温度 和风扇转速

[复制链接]
发表于 2010-2-25 21:21:15 | 显示全部楼层 |阅读模式
最近在写EPC的CPU温度 风扇转速获取方法
; T9 e- i7 O! V7 G; r
; n* s% Y5 ]* N9 ?4 m% `' a' G2 I; B问题
" k  z5 Z! ~5 P- r在获取CPU温度和风扇转速后& C% I4 F( R' A+ z% L2 l; _, D
再次循环获取 CPU温度,数据就出现错误了,为什么?
* \+ @/ X, ]4 M做了缓冲区满空判断: U9 c% N9 \! C( Y' z! o# N# w
下面是判断代码. p% E4 {1 V! l1 h. y0 @

' w0 B9 u. x- |& Svoid check_buffer(int in_out,int port)% m" L: g$ g0 V/ r+ N
{
# ]( E! U0 v' Z/ i: [        DWORD dw_temp=0;
9 J" \+ }6 g* r5 B, e        GetPortVal(port,&dw_temp,1);
) i% J; m3 o+ j+ k        if(in_out==INPUT)
9 I3 T$ j6 K1 m        {. ^) ^  o, C" F& J2 u
                while(dw_temp&0x02): N6 a' W% I6 l& k% @6 E
                {
) j) X- r$ S* A; n& x                        GetPortVal(port,(&dw_temp),1);. ?; ?  V* r6 H+ k
                        dw_temp=(BYTE)dw_temp;
* Y5 ~6 @: \, Q9 _& _( G% a: F; E                        Sleep(5);}% }0 U9 g* K4 J+ Z' L
        }. Q2 C- C1 d6 r6 a8 _
        else if(in_out==OUTPUT)        
6 H( _: K7 d( J: o{6 ~- m2 h7 {3 {
                while(!(dw_temp&0x01))
- j+ a5 ?+ F. U+ ^2 a( _" g2 B                {
6 D3 T2 C/ X) o1 M# z4 U: L5 ~                        GetPortVal(port,&dw_temp,1);' B) E. @, h- k/ g  r, x
                        dw_temp=(BYTE)dw_temp;, C1 H( t. S9 [. O
                        Sleep(50);
( M; I1 s- g( e: a9 u! ~( B+ h7 D! E                }! V% l- C0 b- ^2 o8 p$ j/ w# V
        }
, _7 w1 W+ V( [* f% @* N, r% V1 i5 f9 ]: A1 e
}
发表于 2010-2-26 15:24:49 | 显示全部楼层
能告诉我你是怎么读的吗
回复

使用道具 举报

 楼主| 发表于 2010-2-26 16:28:00 | 显示全部楼层
已经找到问题了, e) U8 n/ b- q. }6 \6 d
在setportval 前后 都要进行一次缓冲区输入检测,原来我只是在setportval 前检测了,后没检测。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-9-21 21:56 , Processed in 0.431134 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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