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

关于 CPU 温度 和风扇转速

[复制链接]
发表于 2010-2-25 21:21:15 | 显示全部楼层 |阅读模式
最近在写EPC的CPU温度 风扇转速获取方法3 a  T  R0 \* x: M; l7 V

9 X4 g! j8 B" t2 E: ?* g问题
, ]8 S$ }! h6 G, W在获取CPU温度和风扇转速后
' u8 v) |  P& h4 j7 W: d0 Y* o" A/ g: j再次循环获取 CPU温度,数据就出现错误了,为什么?
2 h5 z/ d8 L# o2 h: i做了缓冲区满空判断( m; ~7 M1 l0 y* E" D
下面是判断代码
+ u' x! {& T4 M9 D2 W. y4 K. ~. i
; }0 e" ]( `( b+ V' Q: pvoid check_buffer(int in_out,int port)2 W# ^- m4 }# s" o/ o$ K
{
( Q  \- {4 \% d5 n. C' i; l$ z        DWORD dw_temp=0;8 n) O9 u: e* b: P7 N
        GetPortVal(port,&dw_temp,1);
+ @+ T+ }5 f6 S! t, ?3 T) G/ F        if(in_out==INPUT)
; q( g  A- r! B        {
& t: F$ n* n9 _  ~                while(dw_temp&0x02)5 s6 K6 P, T7 Z* ]7 \
                {) }& \% O: k: d0 S' I5 _$ v
                        GetPortVal(port,(&dw_temp),1);8 `% E9 }0 g1 v8 Z9 N+ i* V
                        dw_temp=(BYTE)dw_temp;0 G" ~' d& {! [
                        Sleep(5);}5 c; D+ ]# u5 J
        }
# F2 y9 m0 A2 }4 n        else if(in_out==OUTPUT)        
  |% _, \( f/ `8 G1 ^{6 x7 Y; r6 n2 w0 v" S
                while(!(dw_temp&0x01)): a$ V$ z2 Q. p; F9 e. O4 e
                {
% ^: L/ W- L+ @( E) K' B# a2 l5 U$ V                        GetPortVal(port,&dw_temp,1);
2 S1 e) F7 T7 `                        dw_temp=(BYTE)dw_temp;
1 z" Z  Z+ F* c" g- `/ y                        Sleep(50);; C& W  y! E; @$ L& h$ X
                }
. i) c# F. r. H5 L2 i* D6 F: x        }
* R% |! [' I; C$ K
3 v/ b' |7 w. c( T3 K& q# [! B}
发表于 2010-2-26 15:24:49 | 显示全部楼层
能告诉我你是怎么读的吗
回复

使用道具 举报

 楼主| 发表于 2010-2-26 16:28:00 | 显示全部楼层
已经找到问题了5 t; J3 w4 L3 a4 v/ v
在setportval 前后 都要进行一次缓冲区输入检测,原来我只是在setportval 前检测了,后没检测。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-11-4 02:02 , Processed in 2.301903 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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