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

关于 CPU 温度 和风扇转速

[复制链接]
发表于 2010-2-25 21:21:15 | 显示全部楼层 |阅读模式
最近在写EPC的CPU温度 风扇转速获取方法
  r: B7 \3 H" G0 [' b# E9 A
( g/ a. G( w. D问题
) z9 L5 K1 P" N在获取CPU温度和风扇转速后: z) m; [" {, d& B, K/ S
再次循环获取 CPU温度,数据就出现错误了,为什么?
; J9 y; T. `9 L" z  @2 G& O做了缓冲区满空判断/ E# U, s# ~8 z
下面是判断代码
; V' U$ `+ k/ F
, K2 e% K) h$ Ivoid check_buffer(int in_out,int port)( `' u- {3 W) l0 {% P+ ~4 d
{2 [% e; m7 l  N: Z' [& `4 ]3 ^0 @
        DWORD dw_temp=0;# b0 g! e# H; k9 f' i! u
        GetPortVal(port,&dw_temp,1);
1 n- V& h9 `  ~, b3 x! E: R        if(in_out==INPUT)
; K+ v' K& [' `7 a! N        {" U. G! t6 D; Q9 m
                while(dw_temp&0x02)9 G  ?& u# i+ Z
                {3 b" h& C& A3 B, b  [. A+ U' u
                        GetPortVal(port,(&dw_temp),1);
) j1 Z" _& P9 P8 D4 v" v                        dw_temp=(BYTE)dw_temp;
+ p9 I* z  ?4 h  z) q                        Sleep(5);}
2 b7 |1 I: [8 Y* Q, y' r/ a$ v        }5 W+ i) B2 Z$ x- }  J) p
        else if(in_out==OUTPUT)         : ^* W4 K8 ~0 a
{0 P. {: Q4 h" O' y3 }' |+ z
                while(!(dw_temp&0x01))
+ q5 o' C$ E. S' Z                {  x$ Q3 ?+ w+ j$ }
                        GetPortVal(port,&dw_temp,1);/ F9 @1 {+ c+ P, i7 d" y
                        dw_temp=(BYTE)dw_temp;4 ^0 J1 o; W. n3 w3 `5 \
                        Sleep(50);
  Q$ t$ V. b6 q  H                }& q; J: A( F/ e3 k) j
        }: m0 K$ u- p% Y

: Z+ c& R' A) K6 L  C3 i& u4 j}
发表于 2010-2-26 15:24:49 | 显示全部楼层
能告诉我你是怎么读的吗
回复

使用道具 举报

 楼主| 发表于 2010-2-26 16:28:00 | 显示全部楼层
已经找到问题了" e  x8 v, j$ s3 O2 i, A# @* Z
在setportval 前后 都要进行一次缓冲区输入检测,原来我只是在setportval 前检测了,后没检测。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-10-12 08:07 , Processed in 0.057427 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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