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

关于 CPU 温度 和风扇转速

[复制链接]
发表于 2010-2-25 21:21:15 | 显示全部楼层 |阅读模式
最近在写EPC的CPU温度 风扇转速获取方法
# ]6 @/ n9 D( n/ F
' _  m; [+ o! _( t  \  t5 L问题
$ Y  C1 z" ~  g. n在获取CPU温度和风扇转速后- s- Z! Q7 |6 h; _5 }4 w
再次循环获取 CPU温度,数据就出现错误了,为什么?
5 N! o$ L/ k  _+ o" @做了缓冲区满空判断
+ k: `" I" k8 q& v下面是判断代码
. d5 T' R6 l, M; c/ I6 Y# Z  m" _6 f& J( {% x7 |& t) A
void check_buffer(int in_out,int port)
$ z- d1 U4 w4 h% J6 `{
1 i  X; E+ S! u        DWORD dw_temp=0;
2 B% r! k& Z" b% P# ]        GetPortVal(port,&dw_temp,1);* s% f' ~& H) W3 E" `5 N6 F+ P) _
        if(in_out==INPUT)   k' M3 ?; ^3 e& n
        {! P* f! j% H4 ]0 i! Q
                while(dw_temp&0x02)" c4 ~- e/ [3 \% D. N
                {# N. o. _+ |+ T# l* l
                        GetPortVal(port,(&dw_temp),1);6 |- `; r* u$ U6 }7 d8 c
                        dw_temp=(BYTE)dw_temp;; m2 T; y, m: X
                        Sleep(5);}
0 V! s! }3 A3 Y. `% i        }! t$ h5 _* \$ t" A& P& Z) B
        else if(in_out==OUTPUT)        
$ {) ?8 T0 n  o{4 M/ r/ K% _" P: ~" L
                while(!(dw_temp&0x01))
9 l5 b5 g, ?& c. N) {                {
2 \# `. ]7 {7 o3 B; k                        GetPortVal(port,&dw_temp,1);
. u/ |& ]) l( k5 Y* k                        dw_temp=(BYTE)dw_temp;$ g" e6 H, m2 i6 E/ ^7 L
                        Sleep(50);! `- Y0 n" ^: E8 {# }) Y1 t
                }8 ^' r* s& @+ u: N( N0 s# L
        }4 s& b. _" I! @3 A* q

" x5 x0 Y9 k, z+ |$ t) G& {}
发表于 2010-2-26 15:24:49 | 显示全部楼层
能告诉我你是怎么读的吗
回复

使用道具 举报

 楼主| 发表于 2010-2-26 16:28:00 | 显示全部楼层
已经找到问题了
! X) F) H: Z; |: l  E在setportval 前后 都要进行一次缓冲区输入检测,原来我只是在setportval 前检测了,后没检测。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-22 10:51 , Processed in 0.090718 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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