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

关于 CPU 温度 和风扇转速

[复制链接]
发表于 2010-2-25 21:21:15 | 显示全部楼层 |阅读模式
最近在写EPC的CPU温度 风扇转速获取方法1 W, Y; d4 c2 w7 }1 p3 L2 I  ~
! z8 ?* z/ j7 |: Z" ^; q. A& \. Q
问题
3 D3 ]$ W9 R3 Q8 u% J' q1 w在获取CPU温度和风扇转速后. q8 E% u4 y+ J8 P1 p0 X
再次循环获取 CPU温度,数据就出现错误了,为什么?
: X, T. a0 w5 e: |6 Q做了缓冲区满空判断
/ S  }. v/ N6 [8 O9 n8 C3 o/ `下面是判断代码7 r" E4 H$ y( G. g

5 A, k9 Q/ _5 @- B& Avoid check_buffer(int in_out,int port)
. D4 C7 {5 J, M: ^( \{3 `! R- O  w! ]) w
        DWORD dw_temp=0;3 c3 d9 |, W3 P+ a$ f: V$ x  n
        GetPortVal(port,&dw_temp,1);2 b5 [+ d* ?4 o; o4 [
        if(in_out==INPUT) " h# l6 z) B# d8 g% X' Y
        {  M5 r8 |3 R1 n9 }
                while(dw_temp&0x02)
$ L5 k1 [/ `, c. J                {& y( o8 ~7 ]: x. `# v# j
                        GetPortVal(port,(&dw_temp),1);
1 ^/ i+ u* W9 f$ u- u( o                        dw_temp=(BYTE)dw_temp;6 z4 m- D+ S: z* S" z
                        Sleep(5);}  S. _! }  F. r$ U$ Q+ l3 a
        }
5 L; X( {, [& _6 A: ~; \. ?        else if(in_out==OUTPUT)        
' N! U5 D' v4 U  G7 l/ Z{# X7 l- w: j! r! O* a. c- Q5 F8 T8 f
                while(!(dw_temp&0x01))
4 b: Z0 ], w2 _. V- |                {
! g5 S1 m& a% `  q! G                        GetPortVal(port,&dw_temp,1);: q" A# ^7 n5 j( S/ r
                        dw_temp=(BYTE)dw_temp;, E" R. V: s$ e, y
                        Sleep(50);
9 K& N0 H& ^  g, t$ c                }6 Y; F8 Q+ Q* S* X  H- h8 h
        }6 @' L/ R# S3 E" b% q. n
$ h: Y& o) Z" f
}
发表于 2010-2-26 15:24:49 | 显示全部楼层
能告诉我你是怎么读的吗
回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-1 09:38 , Processed in 0.139769 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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