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

关于 CPU 温度 和风扇转速

[复制链接]
发表于 2010-2-25 21:21:15 | 显示全部楼层 |阅读模式
最近在写EPC的CPU温度 风扇转速获取方法
% D+ S+ r- P* k% r5 H$ y" u
9 V' Y  ~' _) X" f" c9 j8 U问题
& j4 a- {6 {6 T* [在获取CPU温度和风扇转速后% m! @) q9 p. l# B0 h$ g$ _
再次循环获取 CPU温度,数据就出现错误了,为什么?5 [: l& m7 V' y: p1 s9 o. t6 K
做了缓冲区满空判断" ^0 G& ^) ~: X* n" z% J
下面是判断代码
% F# i; \4 \! X5 v4 ~
. Z; R) C3 L! C( g* C% [void check_buffer(int in_out,int port)- a0 }: l! _  J: C
{9 A' z; }3 h$ U# U* R
        DWORD dw_temp=0;
& U5 r0 W6 G, f4 g        GetPortVal(port,&dw_temp,1);
! B" N- [: b+ I, l        if(in_out==INPUT)
' ]5 l) \8 J( k        {! [7 d7 ~! g5 U0 O" V
                while(dw_temp&0x02)5 w5 H% h5 P8 W, i
                {
6 B, e, n. V- e3 C6 [0 v# I                        GetPortVal(port,(&dw_temp),1);
# z2 k) Z* @- R4 o                        dw_temp=(BYTE)dw_temp;7 X) l& D* f, ?# w9 A, E
                        Sleep(5);}( P$ n7 U% j: _
        }
1 E. B- {* M' S        else if(in_out==OUTPUT)         6 [7 H9 J" s% \$ |- x" f2 l9 p% k" A
{! t. Q' c" e) l$ K* k
                while(!(dw_temp&0x01)), y& E( G* J2 a& d1 M
                {
# P4 B# S# h# V( X( R2 X                        GetPortVal(port,&dw_temp,1);
6 c6 [6 ~$ K: G& k9 ]) v                        dw_temp=(BYTE)dw_temp;
% ~! n+ A* {* T/ F+ C/ F6 K9 D                        Sleep(50);  I  a7 L2 U9 G9 E# P/ K! @2 j: N
                }. ]/ d1 V5 `) I* v
        }
  B6 k, t. W7 G- a% K2 t8 B6 D
; |- q0 j: ?3 B) H4 i1 X5 f7 L, d}
发表于 2010-2-26 15:24:49 | 显示全部楼层
能告诉我你是怎么读的吗
回复

使用道具 举报

 楼主| 发表于 2010-2-26 16:28:00 | 显示全部楼层
已经找到问题了+ a( b1 e  c2 i3 v# O
在setportval 前后 都要进行一次缓冲区输入检测,原来我只是在setportval 前检测了,后没检测。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-5 10:04 , Processed in 0.042524 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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