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

关于 CPU 温度 和风扇转速

[复制链接]
发表于 2010-2-25 21:21:15 | 显示全部楼层 |阅读模式
最近在写EPC的CPU温度 风扇转速获取方法- b2 A) ~$ g  q1 f+ Y5 n# D0 e

9 f8 i+ ]) m6 P问题' j3 l) h/ Y8 G0 H0 \8 T* B
在获取CPU温度和风扇转速后
; d% ^; |, A: ]3 p! O8 K2 V再次循环获取 CPU温度,数据就出现错误了,为什么?  @2 H" g  Z% n% k  v$ w+ s' D
做了缓冲区满空判断% U- M1 Z6 w- F/ f; F) w7 n
下面是判断代码8 w) D) V" g' N$ m- y2 V

! b3 L9 A2 D8 t2 e9 z: ]void check_buffer(int in_out,int port)9 q8 L( ?# K. o( ~) I; n
{
" ^( Q9 [% ]( f; K$ w; e$ N        DWORD dw_temp=0;
" ^5 Z# j" c" D4 O! ~5 H        GetPortVal(port,&dw_temp,1);6 E1 a% a: |* N  M( I# `8 f
        if(in_out==INPUT)
  R! Q& N) e% y& B8 i+ J        {% F4 |! W4 S/ F" ?2 Q
                while(dw_temp&0x02)* F8 R7 h1 `3 Q) }5 Z# I% q. N
                {
) }- x2 ]* c* h& ]8 @) @                        GetPortVal(port,(&dw_temp),1);
- I+ B  a( U2 `, v: i1 d1 r3 p# T                        dw_temp=(BYTE)dw_temp;
/ f6 d- |' [9 e' X6 L                        Sleep(5);}
8 H0 r( D- q. }8 v' N5 [' a        }
; O8 V4 N/ a7 |" W5 x/ ~( b3 }        else if(in_out==OUTPUT)        
! N& r& O2 @  }# u" h& ~, w{. h9 K- @  ]- s% W
                while(!(dw_temp&0x01))1 s/ I2 c: Z; m' F! F' ~1 H
                {
' l1 F: C9 k+ q& S+ T                        GetPortVal(port,&dw_temp,1);8 b% @7 m: {- M- e% E  A
                        dw_temp=(BYTE)dw_temp;
# t3 S$ a1 W4 f7 \; k1 S                        Sleep(50);
, o- Q5 g6 B" ~7 X8 J                }
! L& P6 i( o% p# ~: f" n        }
/ E8 o+ \' ?9 |  _: o1 G& z" b: x
# _; g( U/ C/ I( a  s/ M}
发表于 2010-2-26 15:24:49 | 显示全部楼层
能告诉我你是怎么读的吗
回复

使用道具 举报

 楼主| 发表于 2010-2-26 16:28:00 | 显示全部楼层
已经找到问题了( R4 O9 x8 f6 v% ^& O2 B7 p
在setportval 前后 都要进行一次缓冲区输入检测,原来我只是在setportval 前检测了,后没检测。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-1 08:34 , Processed in 0.164874 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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