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

关于 CPU 温度 和风扇转速

[复制链接]
发表于 2010-2-25 21:21:15 | 显示全部楼层 |阅读模式
最近在写EPC的CPU温度 风扇转速获取方法5 D6 C- H2 I# I% @9 G
9 q% R7 i3 k2 ^0 v9 w0 O
问题
' c* \) ?; O! H在获取CPU温度和风扇转速后
! e. a7 r0 b, r再次循环获取 CPU温度,数据就出现错误了,为什么?
2 S, I. |% n$ E$ t+ g* Y) h做了缓冲区满空判断2 l- r# E: d# x% @# w
下面是判断代码
. [: k$ Y. e, B" F3 _; q5 s1 C2 `0 Q# @3 G$ U7 X# N8 [. U, @
void check_buffer(int in_out,int port)9 x6 i3 l+ R6 a, I, {9 ?
{
) t  G- T! M; c        DWORD dw_temp=0;. h. t1 S3 w. j; I
        GetPortVal(port,&dw_temp,1);
) u5 k+ k% x3 |' ~$ [        if(in_out==INPUT)
, U3 t1 d( k+ x4 u. @% L/ H        {4 W, O4 x5 ~- u1 I2 I2 r
                while(dw_temp&0x02)
. z4 H9 z  y3 V6 K7 M0 N                {0 Z: G$ W* X; Z  f6 E2 L7 {7 P1 d
                        GetPortVal(port,(&dw_temp),1);
: p% g& J; u7 Q0 h, l5 u                        dw_temp=(BYTE)dw_temp;
" l  J" o7 S5 j+ q& j4 R; I                        Sleep(5);}' N; v% _9 x& C2 Y7 @  O
        }
1 K/ Y( n0 s8 y        else if(in_out==OUTPUT)         / ^; Z* l! X& W
{& v4 ]( j$ n# ~/ V/ v/ t
                while(!(dw_temp&0x01))$ H3 ~% O# |. ^5 E& j
                {" }7 o; I/ C5 r$ S+ p
                        GetPortVal(port,&dw_temp,1);
/ v% x6 e% E( [, t& H& [8 N                        dw_temp=(BYTE)dw_temp;& d1 m# ]: V7 x7 \
                        Sleep(50);7 ^: C- m) E0 q
                }
& ]2 q1 l* s, O: V  M: N        }& H% G0 m9 ]& Y/ f

. f3 ~% y" s1 X! R( g}
发表于 2010-2-26 15:24:49 | 显示全部楼层
能告诉我你是怎么读的吗
回复

使用道具 举报

 楼主| 发表于 2010-2-26 16:28:00 | 显示全部楼层
已经找到问题了
+ P1 `6 Z# U8 H, O. ]* v( f在setportval 前后 都要进行一次缓冲区输入检测,原来我只是在setportval 前检测了,后没检测。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-19 04:08 , Processed in 0.020359 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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