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

关于 CPU 温度 和风扇转速

[复制链接]
发表于 2010-2-25 21:21:15 | 显示全部楼层 |阅读模式
最近在写EPC的CPU温度 风扇转速获取方法" P  E3 U7 ^4 `( c6 }9 A& b
  b7 B1 q/ l- {2 E$ M* ^
问题( k+ R- ^- l* x- A6 g% P6 o8 c
在获取CPU温度和风扇转速后: v3 |" J; ^( v
再次循环获取 CPU温度,数据就出现错误了,为什么?
$ b, ]% I8 l+ M; |做了缓冲区满空判断
" Q, ^, p; b5 x0 i- Y4 O下面是判断代码; W2 z. s  B+ I7 T. h

+ [. q# C0 F6 v! Mvoid check_buffer(int in_out,int port)
4 X. t) ?% L, [% C{
% T' P; r) p" X% M- D        DWORD dw_temp=0;
9 G# c# h/ d$ i8 O+ X' \, S        GetPortVal(port,&dw_temp,1);
% }" ]5 ~7 e) i4 u4 U        if(in_out==INPUT)
  \1 e" e0 t+ o# u6 V8 d        {
$ ^- L0 `3 u" R" w; B  s3 o                while(dw_temp&0x02)) e, N! U, N4 `2 a# `; q
                {$ ^) ]$ R! d% ^7 c. f! j' v
                        GetPortVal(port,(&dw_temp),1);
" S8 R9 b8 ~' s7 Q" `# b                        dw_temp=(BYTE)dw_temp;
. t0 J4 x; N& g- S  p- \$ S                        Sleep(5);}
* @4 J: g0 O# `" K9 X9 h        }0 S* S, R0 V% M5 U
        else if(in_out==OUTPUT)         + K" I5 x+ c) p9 J  E
{$ i9 W4 k: l) F& b3 O' ]+ \/ ^; W
                while(!(dw_temp&0x01))
3 P: _/ F; g3 L                {( W3 N" d& I6 \- p
                        GetPortVal(port,&dw_temp,1);
5 j1 T  {  p' l+ ], N  e; U                        dw_temp=(BYTE)dw_temp;3 u1 v3 h! q. N& Q$ w- V
                        Sleep(50);
) m8 m. u# _& d9 G                }
- Q4 A% Z9 X* M/ D        }
- C, R4 J% t8 S5 u; X7 i3 G9 l9 A, z. B( U" d
}
发表于 2010-2-26 15:24:49 | 显示全部楼层
能告诉我你是怎么读的吗
回复

使用道具 举报

 楼主| 发表于 2010-2-26 16:28:00 | 显示全部楼层
已经找到问题了
7 X, D; G* N! u" f5 c3 z/ S$ m在setportval 前后 都要进行一次缓冲区输入检测,原来我只是在setportval 前检测了,后没检测。
回复

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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