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

关于 CPU 温度 和风扇转速

[复制链接]
发表于 2010-2-25 21:21:15 | 显示全部楼层 |阅读模式
最近在写EPC的CPU温度 风扇转速获取方法0 D: M  k* F: R' V8 ~6 i+ Y4 y+ z

2 v" v( s+ l& [1 N* L问题
3 L# l( Z& u! a% g在获取CPU温度和风扇转速后' b7 W7 {3 R8 o/ N0 ?8 e
再次循环获取 CPU温度,数据就出现错误了,为什么?7 x* `  K7 W: w! W) b
做了缓冲区满空判断3 D) X% b! n8 S4 Z' m- C2 i
下面是判断代码5 @& H7 b) Q0 B. k

0 k! P" k7 {( d7 Q7 Pvoid check_buffer(int in_out,int port)
+ W6 J- Y$ q  F* R3 |{
7 W* z: u0 `+ {, s4 }        DWORD dw_temp=0;; \- x! k4 H! q, A) x9 z6 B) W
        GetPortVal(port,&dw_temp,1);# |- e* Q$ _. K" j2 d( D  y
        if(in_out==INPUT) % e  N0 Q0 b! {& ]) U0 q: H
        {
4 P7 z6 f9 D2 B  q* h% Z) f                while(dw_temp&0x02)
" Q4 ^' C- Y- D, G: d& q0 k                {
& B4 a  a4 c9 w" A: `1 V                        GetPortVal(port,(&dw_temp),1);7 ~  V0 Y8 p* F  q* R5 t
                        dw_temp=(BYTE)dw_temp;- B) \% J1 V% C$ Z4 u* \
                        Sleep(5);}
( X6 X* W. W$ S' E% ~) d        }
$ R& [, N* D& s- s: v        else if(in_out==OUTPUT)           ]* {8 `# o- \
{
9 w+ E, n+ Y& n' D                while(!(dw_temp&0x01)): q; }- x7 x/ W- i
                {0 C! T  |& L0 x6 ^! m+ z  T
                        GetPortVal(port,&dw_temp,1);3 H* r/ s4 G0 m, r( B: p7 E
                        dw_temp=(BYTE)dw_temp;: o  W& F1 v, I* y
                        Sleep(50);
0 f5 c/ G4 D) o6 c9 d                }4 ?3 u) z5 Y( b2 M- R
        }
8 G# y  f& a+ X$ k4 }
( t! D% n, x' c) {; g- p& i! t: I}
发表于 2010-2-26 15:24:49 | 显示全部楼层
能告诉我你是怎么读的吗
回复

使用道具 举报

 楼主| 发表于 2010-2-26 16:28:00 | 显示全部楼层
已经找到问题了  k' D  y" n. H4 w# A# o) d
在setportval 前后 都要进行一次缓冲区输入检测,原来我只是在setportval 前检测了,后没检测。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-7-19 19:05 , Processed in 2.256013 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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