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

关于 CPU 温度 和风扇转速

[复制链接]
发表于 2010-2-25 21:21:15 | 显示全部楼层 |阅读模式
最近在写EPC的CPU温度 风扇转速获取方法
5 B. a$ z! A* k& R% \- V7 S5 Z& S9 z8 E7 m5 Z& ~/ Z( E
问题3 ]3 O0 O7 y1 ^! y1 a" l
在获取CPU温度和风扇转速后
' q7 {# ]( ~. U& Y- w4 d/ P再次循环获取 CPU温度,数据就出现错误了,为什么?
( R" \& x! G% l4 y; K$ @) m% D. e做了缓冲区满空判断! g7 k) t1 e9 h  y) m5 Z: H  E
下面是判断代码
4 J0 {0 W9 v, y& u7 A3 X9 J3 n: S9 a! E
void check_buffer(int in_out,int port)
7 [3 ?4 u' l2 a5 C- x{
0 L& Y2 q' E3 R/ D% ^( V8 G        DWORD dw_temp=0;, A( z3 o* e1 x, h# {  ^0 Z4 a
        GetPortVal(port,&dw_temp,1);
* z2 O) C; X6 F  O        if(in_out==INPUT)
9 i* R& O: f  Y9 Z* {        {
. I3 w2 [+ ~" i. X  H4 m5 T3 h9 v                while(dw_temp&0x02)
% J: \  _+ F5 O" H0 Y  B" t                {# O. U! V6 N. v' P% Z1 h2 m
                        GetPortVal(port,(&dw_temp),1);
$ U+ g$ z! x8 H$ H5 ]$ d4 j, u6 P                        dw_temp=(BYTE)dw_temp;
+ L) R. o' D* b7 W/ G                        Sleep(5);}# u, E; i6 K6 a  J! I2 u
        }8 h" Z) i; s4 ~. N0 ?
        else if(in_out==OUTPUT)        
/ F1 q! S1 m/ c{
( w+ _. F& g2 L/ g( {3 Q8 ~$ k                while(!(dw_temp&0x01))
$ P5 i# }& E4 I3 y5 C( B; X/ p. x3 ~                {% a3 q; u' _/ l' @
                        GetPortVal(port,&dw_temp,1);
. U2 o) A6 ^% [6 O8 ?9 O                        dw_temp=(BYTE)dw_temp;
4 b  T6 V6 u, t# j! o4 ^. {7 G- J1 e                        Sleep(50);$ n+ J7 v6 H$ q. p$ Q1 l3 Y
                }
/ m$ V* L/ O" R        }1 H, |& K+ W0 Z) v$ i6 B
4 S9 \! \& U& ?. ?! d' ?
}
发表于 2010-2-26 15:24:49 | 显示全部楼层
能告诉我你是怎么读的吗
回复

使用道具 举报

 楼主| 发表于 2010-2-26 16:28:00 | 显示全部楼层
已经找到问题了
7 h/ g- A( p, v在setportval 前后 都要进行一次缓冲区输入检测,原来我只是在setportval 前检测了,后没检测。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-14 05:16 , Processed in 0.073791 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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