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

关于 CPU 温度 和风扇转速

[复制链接]
发表于 2010-2-25 21:21:15 | 显示全部楼层 |阅读模式
最近在写EPC的CPU温度 风扇转速获取方法
- x2 S# g% s# J
9 g1 d* l0 |" J) J4 X2 l问题
8 Y" [, @( O& @; R2 M0 @在获取CPU温度和风扇转速后( r# c0 j6 I' I2 l/ n1 x1 ~% ?( r
再次循环获取 CPU温度,数据就出现错误了,为什么?( ^: |1 H7 b4 W& D/ h1 C
做了缓冲区满空判断3 K* [2 a+ }4 }/ M* C
下面是判断代码
  W; v( \3 w, P/ ]7 c$ G& h
2 j/ E% t; h- H2 g' H5 ~$ o. wvoid check_buffer(int in_out,int port)
3 m( Q1 e/ d* X, F8 o  T) z! w{; c3 \$ P+ X4 ?3 q; c
        DWORD dw_temp=0;
7 J/ p+ q9 v" J        GetPortVal(port,&dw_temp,1);- T- W( w+ f" X  d
        if(in_out==INPUT) + p" k: D3 i3 p, }! r" G
        {
" d% X9 b% X" c                while(dw_temp&0x02)& V0 l1 Q; r6 p; O& M' t, L! ^, w
                {
  k' X* c; j. z' m$ I2 \                        GetPortVal(port,(&dw_temp),1);
$ R& o  E. p& t& P1 r( [: s' i5 J                        dw_temp=(BYTE)dw_temp;3 I# [9 h$ D1 `2 p7 s
                        Sleep(5);}( g3 Z7 u/ f; N! M7 ^
        }
  p' e& c- G- d5 u9 @9 c        else if(in_out==OUTPUT)        
1 Z7 F9 V/ Y" [& ]9 H3 T5 A& w{- `5 K/ L) Z, Y. w
                while(!(dw_temp&0x01))
' t& k  k  N6 d- x                {' {1 K4 H  h+ P& r; x+ b$ o
                        GetPortVal(port,&dw_temp,1);
1 P7 U1 S2 N3 f" v8 U0 A                        dw_temp=(BYTE)dw_temp;
- \# E: w+ t( h  ?& h7 ~! T( L# r% P/ a                        Sleep(50);
) m0 u, I4 C" X7 U, A7 V                }3 ]+ e- ?" L% E; v# g
        }
( t& Y5 |0 i. U" w8 A* f/ k
! v5 i, E9 ~7 N. ]8 l% D) I}
发表于 2010-2-26 15:24:49 | 显示全部楼层
能告诉我你是怎么读的吗
回复

使用道具 举报

 楼主| 发表于 2010-2-26 16:28:00 | 显示全部楼层
已经找到问题了' x/ l" M6 r7 @
在setportval 前后 都要进行一次缓冲区输入检测,原来我只是在setportval 前检测了,后没检测。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-1 05:37 , Processed in 0.087207 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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