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

关于 CPU 温度 和风扇转速

[复制链接]
发表于 2010-2-25 21:21:15 | 显示全部楼层 |阅读模式
最近在写EPC的CPU温度 风扇转速获取方法
/ ]* ?0 d, {- L4 j6 [5 w, w# Q+ g+ |, _
问题
' |+ z/ V. Y. K( Q& l* R# W" I/ P" e在获取CPU温度和风扇转速后% ]7 y6 A" k& W/ O1 x8 k
再次循环获取 CPU温度,数据就出现错误了,为什么?
6 u( j- a' U9 V, e( K( n: y做了缓冲区满空判断8 U; |) m$ D% M% N
下面是判断代码
# o' V. e7 w. S  g/ n4 B2 r5 S, v$ b( i5 U; o+ x( j
void check_buffer(int in_out,int port)5 P& z% y7 d9 s
{9 o! z' E. L. m/ o, |
        DWORD dw_temp=0;4 C7 t( b0 _: Q+ E# w/ a
        GetPortVal(port,&dw_temp,1);5 f( K  ~5 T+ p" a2 O
        if(in_out==INPUT)   z( R' n4 R3 g9 t( t2 i+ J  c
        {* p6 \! u; Q# Y7 Q
                while(dw_temp&0x02)( K! N' z1 Y' \: D+ \9 n
                {
& m- Q8 |3 `4 A( O                        GetPortVal(port,(&dw_temp),1);( o. @3 J( J' P! Z( p! _, I
                        dw_temp=(BYTE)dw_temp;
5 f# t2 Z2 J+ k* S                        Sleep(5);}/ N& l$ z& u+ x; v7 R0 f9 {
        }
6 l) D; a* f- i6 a" F+ N, ]        else if(in_out==OUTPUT)        
& T9 |& h& t! ?/ Z7 x6 t{
" P# F6 y' `+ i+ ?; I                while(!(dw_temp&0x01))8 C( e5 p/ W) l7 z2 M! @9 Q
                {/ a, F1 n( S! p% e9 y& _3 ?
                        GetPortVal(port,&dw_temp,1);. D2 B6 O5 w2 ?" }4 B, G, g
                        dw_temp=(BYTE)dw_temp;$ p, S* f! l! f0 E
                        Sleep(50);
6 X) P) [" n" {) m                }
0 F4 A% N: o& U: I1 R# ^3 h        }
0 |7 {4 C: [. D5 Z* |* i* C, v; s+ R' u2 v% Y. ?2 e
}
发表于 2010-2-26 15:24:49 | 显示全部楼层
能告诉我你是怎么读的吗
回复

使用道具 举报

 楼主| 发表于 2010-2-26 16:28:00 | 显示全部楼层
已经找到问题了( Z6 ]5 j# h5 K! G6 z' h+ }' o- J
在setportval 前后 都要进行一次缓冲区输入检测,原来我只是在setportval 前检测了,后没检测。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-20 03:42 , Processed in 0.040566 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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