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

关于 CPU 温度 和风扇转速

[复制链接]
发表于 2010-2-25 21:21:15 | 显示全部楼层 |阅读模式
最近在写EPC的CPU温度 风扇转速获取方法! F' a% [7 {6 J0 y: x
2 [, D5 w9 ^8 L( R" h% K
问题
. t! j  p) B" ]在获取CPU温度和风扇转速后) A' y2 l0 _1 d4 ^
再次循环获取 CPU温度,数据就出现错误了,为什么?* E" t0 o$ C! J
做了缓冲区满空判断. ?  ?, \+ U5 M
下面是判断代码0 [. p8 @: Z. J+ I' N0 Q
$ m. {4 Q% b2 w4 y9 I1 ?6 s" `
void check_buffer(int in_out,int port)5 @' V; O% G+ b6 x
{: |# Y0 Z5 d2 r+ t* m
        DWORD dw_temp=0;8 j; [9 f1 @+ _8 |
        GetPortVal(port,&dw_temp,1);4 \5 h0 k, V  N# k+ k$ \9 W
        if(in_out==INPUT)
3 ?1 a3 _- ]( q2 X/ O8 d, j6 l+ I        {+ r7 @3 q$ B. W, g5 k$ D6 s
                while(dw_temp&0x02)
' A0 {2 F: j$ K3 G1 r4 O                {
+ A5 J8 m2 B1 P& l0 \9 a8 z/ W                        GetPortVal(port,(&dw_temp),1);/ V% J  y' q; v4 n/ I. r- ]( |& V6 D8 N
                        dw_temp=(BYTE)dw_temp;$ S0 F& J' W- a8 w9 p2 t
                        Sleep(5);}' Q" u- P4 W6 B! m! C, a
        }; v, U6 i  @8 |3 v
        else if(in_out==OUTPUT)        
# p0 g' w) k! @% \, Q9 e/ o{
" _  }, e. ^% i$ t! M; |4 T9 u                while(!(dw_temp&0x01))3 [7 \6 w  b5 W, N
                {
/ _' p+ b; ~* j1 `2 X                        GetPortVal(port,&dw_temp,1);
" U: @1 u# i0 B. _7 [- b                        dw_temp=(BYTE)dw_temp;' n; X- S" T. N/ M
                        Sleep(50);
- ~' D5 U) Y4 E: u                }
! n, H0 z5 Q" A! o  c+ g/ W( N. ^0 k        }) a% v" g* q, R6 V, h
! z0 K/ Z1 Q6 y" }
}
发表于 2010-2-26 15:24:49 | 显示全部楼层
能告诉我你是怎么读的吗
回复

使用道具 举报

 楼主| 发表于 2010-2-26 16:28:00 | 显示全部楼层
已经找到问题了
9 |8 L9 c# Y7 A9 V: @4 f! C在setportval 前后 都要进行一次缓冲区输入检测,原来我只是在setportval 前检测了,后没检测。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-1 02:46 , Processed in 0.074053 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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