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

关于 CPU 温度 和风扇转速

[复制链接]
发表于 2010-2-25 21:21:15 | 显示全部楼层 |阅读模式
最近在写EPC的CPU温度 风扇转速获取方法! T9 Z: I' S' w: w# E: r( R, S7 S
: P8 u9 ^- ?5 Q) ?
问题
$ \1 w& p# v& r8 z' V在获取CPU温度和风扇转速后) ~) s9 a0 W' A5 a* }/ x" c
再次循环获取 CPU温度,数据就出现错误了,为什么?# J4 A% |' a" s; _
做了缓冲区满空判断& J8 _1 @( X; K8 `
下面是判断代码0 K. z- f; g/ @" H' W
- p. c1 L$ X* l4 V3 i
void check_buffer(int in_out,int port)
" Y! Q# Z2 ~2 Q& P& B7 R{1 a# u5 |- n/ v0 i# r
        DWORD dw_temp=0;
7 ~' x, ~( z. K; R% e1 h5 S        GetPortVal(port,&dw_temp,1);
' }, |! v3 F% S4 H7 Q! t        if(in_out==INPUT)
- |- \  b" G, j! s  q        {
, p  t- Y4 L( x2 s                while(dw_temp&0x02)) ~# O2 G& q- Z& ]* A/ P
                {9 N! V+ h; C; s+ N* ]/ K( n0 ~
                        GetPortVal(port,(&dw_temp),1);
& V7 P% {1 j' F5 ?                        dw_temp=(BYTE)dw_temp;
( \" U" w& [' b                        Sleep(5);}
: k- f% R& ?: ?) E% Q/ G  h, W        }& H( J: A/ B$ n% m! V
        else if(in_out==OUTPUT)        
' L7 r+ A7 x1 G3 [9 K! s0 P( q{! G& K9 {0 v. S/ }
                while(!(dw_temp&0x01))
  E* t+ ~' ~& e" k                {+ T- {, i) p; H% j( c9 |6 ?% Q- v/ |
                        GetPortVal(port,&dw_temp,1);
; F2 l3 \0 `" Y- H4 S1 X                        dw_temp=(BYTE)dw_temp;. C: f, ^+ q, g  ]- v
                        Sleep(50);0 w9 g2 k2 c- d( n* ^# C+ j' U% m! L
                }* N2 P3 b5 K6 D
        }
) ?6 l. W9 }( y1 b  F* [6 m8 l5 Y3 p' S: [# _; t$ d. y. U
}
发表于 2010-2-26 15:24:49 | 显示全部楼层
能告诉我你是怎么读的吗
回复

使用道具 举报

 楼主| 发表于 2010-2-26 16:28:00 | 显示全部楼层
已经找到问题了
1 O- c) y% k% [, F在setportval 前后 都要进行一次缓冲区输入检测,原来我只是在setportval 前检测了,后没检测。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-6-4 16:19 , Processed in 0.132164 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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