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

关于 CPU 温度 和风扇转速

[复制链接]
发表于 2010-2-25 21:21:15 | 显示全部楼层 |阅读模式
最近在写EPC的CPU温度 风扇转速获取方法$ Z& Y* M% h+ S) J, C

0 w- Y8 D% W% `2 i) P问题
1 q! h4 w4 x7 m" b( A3 W* T在获取CPU温度和风扇转速后: J- v! _2 R; k
再次循环获取 CPU温度,数据就出现错误了,为什么?  \9 x4 K* f9 g( Y
做了缓冲区满空判断8 X. t/ o; g8 x2 B/ i3 r2 a
下面是判断代码
3 W# [  H$ Z$ F- ?; \4 x+ ~  d% n' s# {+ _: j( J9 q/ c
void check_buffer(int in_out,int port)
4 ?+ p2 c) k4 o{
- [# a* j3 Z* a- m: I; {        DWORD dw_temp=0;
" T' k) X. d# L8 s4 a3 [/ P+ y2 ]        GetPortVal(port,&dw_temp,1);6 ], D" Q' I8 e! i4 E7 i
        if(in_out==INPUT) ; M! R2 {6 j5 ]* t" [) D- m3 \
        {0 A9 ?1 _: ^3 i* R& x# z# o8 K2 [3 E
                while(dw_temp&0x02)7 C$ X6 i1 _1 V3 p5 q
                {
4 Y  a, F: ^) Z& p# S                        GetPortVal(port,(&dw_temp),1);$ y* y# _/ @- N9 O# _6 q
                        dw_temp=(BYTE)dw_temp;
( J; F6 l( x6 B/ t( _                        Sleep(5);}: K5 k- p# t" J, n
        }1 ~( X* n! R$ ~, K& q
        else if(in_out==OUTPUT)         7 |" |5 Z& P- o2 _2 F7 T  o
{/ Q$ ~$ f, |# ?, x6 Y8 @$ ^- ^
                while(!(dw_temp&0x01))
4 A" d# q7 I7 \" U( I: f) c9 o; W                {9 B# |+ i, w- p) o
                        GetPortVal(port,&dw_temp,1);
  L, x+ v; j1 m" `. H                        dw_temp=(BYTE)dw_temp;, A) D5 V) ?0 h/ t
                        Sleep(50);
& u- P! g  w# [" }                }
  q+ C" @' ^+ G- y/ Z        }
% W0 O- i& q5 B" i( y
4 x7 ]% ?3 l' }8 \}
发表于 2010-2-26 15:24:49 | 显示全部楼层
能告诉我你是怎么读的吗
回复

使用道具 举报

 楼主| 发表于 2010-2-26 16:28:00 | 显示全部楼层
已经找到问题了
& L( {1 P: R( H4 G1 F  Z! S. h1 K在setportval 前后 都要进行一次缓冲区输入检测,原来我只是在setportval 前检测了,后没检测。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-4-25 03:32 , Processed in 0.068471 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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