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

关于 CPU 温度 和风扇转速

[复制链接]
发表于 2010-2-25 21:21:15 | 显示全部楼层 |阅读模式
最近在写EPC的CPU温度 风扇转速获取方法( T: N- J' m3 [  h& L. N

- X, d3 y5 H% q; V1 ?问题
8 Y$ u/ C6 B( p在获取CPU温度和风扇转速后7 S3 M5 x/ X4 m, O* y! [
再次循环获取 CPU温度,数据就出现错误了,为什么?' P7 r4 V* p& u( N( {* G: ^3 z, A, ^
做了缓冲区满空判断
4 m, L7 b' F; Z/ a下面是判断代码# M9 N6 b/ |+ X" d
+ Q% Q% r# O$ E" G7 T" O# V
void check_buffer(int in_out,int port)
5 r* ~% L- f/ I& w{
! b0 e$ M! H% n        DWORD dw_temp=0;
; ^; n1 t3 p* G( P8 `( L4 V        GetPortVal(port,&dw_temp,1);
) }5 I  @- \" |) ^0 m        if(in_out==INPUT) ; G4 M3 O! S8 ^5 [
        {
" V: Z3 e& b) ?+ F5 S, z                while(dw_temp&0x02)
, G% B% N! r. `- ~( a7 D8 A, y% q                {
5 f1 A: x! {: |- B                        GetPortVal(port,(&dw_temp),1);- Q$ M& ]9 W; ~- i
                        dw_temp=(BYTE)dw_temp;
* Q' d; d" B! D3 `                        Sleep(5);}. m! ]( [1 a- z, k% N' j
        }
7 {8 u  o4 n+ Y6 o! X        else if(in_out==OUTPUT)         7 |7 C1 N  j2 g$ N( }$ O# B! O9 t
{
! X3 R6 x: Z5 }% h                while(!(dw_temp&0x01))
6 h+ H7 \3 Z* d8 _( R* Q/ X                {4 r7 R9 u7 R) [0 s
                        GetPortVal(port,&dw_temp,1);
; z$ p0 `! W% q6 j7 o                        dw_temp=(BYTE)dw_temp;  k% \" g6 G8 C8 k9 r
                        Sleep(50);: i$ O5 ?7 g1 \6 T3 D; R! W
                }
1 z, l6 L3 }9 B        }! p- l- w5 e$ M/ K; T. h" C
) i) e8 r2 ]/ i1 D& m3 u- |* o$ V4 L
}
发表于 2010-2-26 15:24:49 | 显示全部楼层
能告诉我你是怎么读的吗
回复

使用道具 举报

 楼主| 发表于 2010-2-26 16:28:00 | 显示全部楼层
已经找到问题了& V( t7 Z! M, a  i, u3 ^
在setportval 前后 都要进行一次缓冲区输入检测,原来我只是在setportval 前检测了,后没检测。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-2 02:27 , Processed in 0.103799 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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