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

关于 CPU 温度 和风扇转速

[复制链接]
发表于 2010-2-25 21:21:15 | 显示全部楼层 |阅读模式
最近在写EPC的CPU温度 风扇转速获取方法  ^1 e" n( Z7 _0 U- z! R
9 T( f  ~: @, e: |9 ~; x* A
问题
: L- n" b" ?4 ?7 q在获取CPU温度和风扇转速后
7 t5 V8 f4 C, u8 C7 i" X, O再次循环获取 CPU温度,数据就出现错误了,为什么?8 ]- R! Q* d& m- Q$ z7 E* u
做了缓冲区满空判断
& j$ P* f5 O6 Y下面是判断代码8 J8 t4 q% J; l2 [+ F

, Z# [* G0 y+ M0 y% tvoid check_buffer(int in_out,int port)
4 g6 [# T, q0 N! t{
; u0 W5 ?1 g$ N0 O7 @        DWORD dw_temp=0;
0 Z$ z& Y" L& N+ |        GetPortVal(port,&dw_temp,1);
) ^) G. e/ J1 ^  z+ c        if(in_out==INPUT) * C) D) ^: F: c4 n3 }5 C
        {5 g/ x! s/ F( r$ d5 C8 L, f7 R& M
                while(dw_temp&0x02)
# n( L' v' K2 c) j# w% v$ G# Q+ G& f                {
6 R& @6 L  F9 d; Y  P, M: k                        GetPortVal(port,(&dw_temp),1);
2 I5 s% O. ~2 r& b                        dw_temp=(BYTE)dw_temp;- {, Y' ?% t1 t; E
                        Sleep(5);}) a0 e1 E7 h( Q6 ~' l
        }& B" N  R6 q! V% ~6 }
        else if(in_out==OUTPUT)        
  ]+ @$ D% ~9 ?- K/ O0 Z{3 I% D0 s, u3 k4 {5 z
                while(!(dw_temp&0x01))
+ ?1 K! G4 r: f2 i* l, z! h8 W                {& H8 R$ v2 s0 a2 h
                        GetPortVal(port,&dw_temp,1);
  e/ B' w- z0 f# Y6 J5 B. ]4 U                        dw_temp=(BYTE)dw_temp;8 N, i: Z) E+ s9 o# ~
                        Sleep(50);
+ m7 }. ~& x: f' T3 ~% R                }/ w+ [( q6 |8 m5 c5 E2 ~; F
        }
2 c- N# c8 v8 Y- F0 I$ |' g- h) ]0 w
}
发表于 2010-2-26 15:24:49 | 显示全部楼层
能告诉我你是怎么读的吗
回复

使用道具 举报

 楼主| 发表于 2010-2-26 16:28:00 | 显示全部楼层
已经找到问题了9 d4 W( h4 \/ a  I7 M/ f
在setportval 前后 都要进行一次缓冲区输入检测,原来我只是在setportval 前检测了,后没检测。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-6-8 08:14 , Processed in 0.099674 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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