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

关于 CPU 温度 和风扇转速

[复制链接]
发表于 2010-2-25 21:21:15 | 显示全部楼层 |阅读模式
最近在写EPC的CPU温度 风扇转速获取方法
. m& R9 U) ~3 J! x: U* G# w, g' X3 M# v: n" [1 P8 O) o( H
问题, q7 e. ^* N4 V
在获取CPU温度和风扇转速后, l' V, }2 {9 p- B; A, P
再次循环获取 CPU温度,数据就出现错误了,为什么?
2 X$ a2 g: q' o  ?7 B1 W* y做了缓冲区满空判断* e; Y* J* l% A* Y0 P* }
下面是判断代码) |; ?# ]) d& w0 n- z% H: W, @% S
. Z# c; m$ W0 Z
void check_buffer(int in_out,int port)
8 Z* z( N- P: Y! O6 ~{
7 p# t- e  S0 E6 ?% h, ~2 s! w        DWORD dw_temp=0;8 g, p; v  |- K% k# v! ]
        GetPortVal(port,&dw_temp,1);
7 n: G1 Z( W+ A: q. a        if(in_out==INPUT)
) P1 U% l  P. n4 U        {
$ e9 {1 q9 c" [  C                while(dw_temp&0x02)
" u- W3 {! U8 J: _' _) ]. ]1 r                {( ?! m1 U  |/ F9 z$ |
                        GetPortVal(port,(&dw_temp),1);
3 t% X+ k( ~3 U' C/ i                        dw_temp=(BYTE)dw_temp;1 X: Z3 d$ I9 G( [2 j% i  {
                        Sleep(5);}
4 y: R5 g9 A8 V! ]        }
! A( e  J- z" y: L8 C        else if(in_out==OUTPUT)         5 w, I* B3 G* s
{" T; T9 ~3 T; a0 {9 d
                while(!(dw_temp&0x01))
  v- V; @# f& J4 r: [. B- a                {& T( M" p  V1 ^! l) i
                        GetPortVal(port,&dw_temp,1);
, X* x$ j# ?: D1 c                        dw_temp=(BYTE)dw_temp;
, Y( ~4 |  ?. N                        Sleep(50);
8 F7 k9 D$ b& ^3 C3 w" U" F                }
. h$ ~9 [- |6 g. X- p( W; ~        }% j0 j& E' s- H( w5 M
9 A5 @; ^" z% d! o* x
}
发表于 2010-2-26 15:24:49 | 显示全部楼层
能告诉我你是怎么读的吗
回复

使用道具 举报

 楼主| 发表于 2010-2-26 16:28:00 | 显示全部楼层
已经找到问题了$ N: v7 C" {+ E2 r( ^- i
在setportval 前后 都要进行一次缓冲区输入检测,原来我只是在setportval 前检测了,后没检测。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-5 15:58 , Processed in 0.135584 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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