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

关于 CPU 温度 和风扇转速

[复制链接]
发表于 2010-2-25 21:21:15 | 显示全部楼层 |阅读模式
最近在写EPC的CPU温度 风扇转速获取方法
% w$ z/ U- v6 k# k3 y7 a! V/ G& o1 m: [
问题& G7 v. K: J1 ^
在获取CPU温度和风扇转速后
0 G2 m$ t) ^& V' J! q: b再次循环获取 CPU温度,数据就出现错误了,为什么?5 U9 ]6 g( g+ f( M
做了缓冲区满空判断
. |$ q: ]& _" X3 ?! D下面是判断代码$ A. }+ R9 A2 y. j# z
# V  z7 Y$ B+ R$ ^) ?( H; m& z+ c$ p
void check_buffer(int in_out,int port)
% t' }* _2 \9 s( v7 N{
" l5 e+ B# X8 R, @" {7 A" K& Z        DWORD dw_temp=0;+ e" S; L, e) w% R. O4 e0 c
        GetPortVal(port,&dw_temp,1);
! `. Q/ F/ L8 q) s+ Q8 I/ p        if(in_out==INPUT)
6 c, n( D8 k; d7 l        {. F  f% U* {' W& h* |
                while(dw_temp&0x02); I7 O1 h) N4 }" Z4 h' w
                {2 s+ f! }6 |4 x5 N8 ]
                        GetPortVal(port,(&dw_temp),1);7 a6 z( e0 k* q9 W+ B( X8 O
                        dw_temp=(BYTE)dw_temp;0 a: H7 o( v, Z0 F, x
                        Sleep(5);}3 z5 S5 Z+ X' J1 q. g" p
        }
& S/ h* o1 M* m. c5 N        else if(in_out==OUTPUT)        
0 c! D7 ?* l" a7 x2 j& u$ C{
/ N, F! k7 L$ f5 W/ t( I                while(!(dw_temp&0x01))8 C/ v9 r! h3 u$ z6 }8 o
                {
: ]. ~4 [! s7 H) O4 u                        GetPortVal(port,&dw_temp,1);
6 o+ F0 Z0 h+ l7 I                        dw_temp=(BYTE)dw_temp;% n6 ]4 }* [1 P' A: @2 A
                        Sleep(50);2 a  U, f& X1 F6 Z4 w
                }
" n  b. \8 n2 ?+ s1 _5 t5 z. C0 F  }& M        }
/ O! N( }% U# t3 K
, ^: j4 z3 B9 G: H}
发表于 2010-2-26 15:24:49 | 显示全部楼层
能告诉我你是怎么读的吗
回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-8-11 17:06 , Processed in 0.048505 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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