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

关于 CPU 温度 和风扇转速

[复制链接]
发表于 2010-2-25 21:21:15 | 显示全部楼层 |阅读模式
最近在写EPC的CPU温度 风扇转速获取方法$ [( r8 l- n: H+ ^6 L* C

( j5 J- z9 x% d) r+ u7 I% R& l问题) [# E( g5 q. E5 ]5 O: F
在获取CPU温度和风扇转速后- n0 k3 C* d; n" ~% C1 \
再次循环获取 CPU温度,数据就出现错误了,为什么?
# l' x# B$ z/ ?( l5 o8 S. o9 w做了缓冲区满空判断* @6 {& D' v& H7 f+ d
下面是判断代码
, X% K" N3 H4 R* T6 G) D/ Q/ m
+ j9 I6 F, A0 S) s, v/ o& E) A, fvoid check_buffer(int in_out,int port)
' I) R# [/ M# T) A6 W7 A{
- z# [' b6 M! t' t; `: z+ e        DWORD dw_temp=0;
: T8 m% i2 P' @( r        GetPortVal(port,&dw_temp,1);* x5 T+ f$ r2 E: ^' k0 H1 x# p" E5 M
        if(in_out==INPUT)
& h6 l& e: {- T) @        {  @. W4 Q  P' L6 q% C2 c0 M
                while(dw_temp&0x02)
- J8 j! T  j% M3 F2 W                {: a9 {9 q# d: x& u3 _; k8 h) c
                        GetPortVal(port,(&dw_temp),1);
1 q5 v; v5 ~* S3 B) x6 u+ d' O' }( z                        dw_temp=(BYTE)dw_temp;
; N, Q; {. e& o  o) K3 d                        Sleep(5);}
- I, ~0 ]5 T  E6 E; I; r. \        }( z; L) n% [/ [) G; N3 Z) |- U+ g+ s
        else if(in_out==OUTPUT)        
. x' k  w$ d# E{' l, u: u1 w- i1 t
                while(!(dw_temp&0x01))0 O, [, ?9 R) b/ L+ V" ^, W' |. B
                {
1 [5 J, }4 `+ N& I1 v5 h5 N& k                        GetPortVal(port,&dw_temp,1);
& y: e& A8 h  f2 S7 N                        dw_temp=(BYTE)dw_temp;% i! K  L- a+ I
                        Sleep(50);
! T# A4 ~2 {1 J                }6 i1 S# i' y$ E9 c
        }1 C9 f9 d# W+ O9 Q; K

0 B/ O" J4 ~  U6 X2 ~}
发表于 2010-2-26 15:24:49 | 显示全部楼层
能告诉我你是怎么读的吗
回复

使用道具 举报

 楼主| 发表于 2010-2-26 16:28:00 | 显示全部楼层
已经找到问题了
7 G/ h# ~1 k8 s1 z2 A& w% n在setportval 前后 都要进行一次缓冲区输入检测,原来我只是在setportval 前检测了,后没检测。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-1 02:47 , Processed in 0.072295 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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