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

关于 CPU 温度 和风扇转速

[复制链接]
发表于 2010-2-25 21:21:15 | 显示全部楼层 |阅读模式
最近在写EPC的CPU温度 风扇转速获取方法
5 n; S$ ~- t: o, @1 H8 @) r" C, ]# ]0 a% P- H& o0 u3 V% r. n
问题. t4 Z( R% f; k$ `) b' A' z" D
在获取CPU温度和风扇转速后
+ A' U+ g1 a* K2 h# N再次循环获取 CPU温度,数据就出现错误了,为什么?; f* P: @# O1 b, X
做了缓冲区满空判断
/ s: O$ d  a0 l" Y2 t下面是判断代码
' G) A0 ]9 a) }/ |, c
1 U" H1 _2 g. G5 Mvoid check_buffer(int in_out,int port)# A+ ?' q& G  J& p
{
. f8 j# q4 s# h. g( k% f        DWORD dw_temp=0;1 G* x4 m4 D/ E+ X; n
        GetPortVal(port,&dw_temp,1);
7 _# M3 {( U! I) A8 v. y; ~        if(in_out==INPUT)
2 f& |3 X8 I+ j        {$ ]% y7 K1 ~7 p( m$ X# x
                while(dw_temp&0x02)
/ m' v: [2 ^2 D+ v; E2 s                {  K2 ~( ~: G" \  C
                        GetPortVal(port,(&dw_temp),1);4 b/ `7 r9 W* B- I
                        dw_temp=(BYTE)dw_temp;
% ~9 B! x' `. o+ P& G$ e( A5 i                        Sleep(5);}
0 Q5 w! Z, X- A. N5 r: C        }
: P+ C/ l" I0 U$ H# c& N        else if(in_out==OUTPUT)        
" ?9 j; t- h0 f2 P0 I- q4 D{4 R2 Y  Y4 P8 J
                while(!(dw_temp&0x01))0 i0 k0 r/ x* W7 s0 S4 W
                {0 `) y( g2 B# t( c4 z) Z
                        GetPortVal(port,&dw_temp,1);
: s. u- W, X# |4 m" n, P& P; e/ I# G                        dw_temp=(BYTE)dw_temp;
) L+ B1 c( ^7 [2 L! W1 X  K6 g: f                        Sleep(50);; O3 U1 g* D# G# p' [8 P
                }  E/ F) I. U* U
        }
' ^8 b2 w) H) T. {6 }6 H
" G0 Q3 M- o: Q7 h}
发表于 2010-2-26 15:24:49 | 显示全部楼层
能告诉我你是怎么读的吗
回复

使用道具 举报

 楼主| 发表于 2010-2-26 16:28:00 | 显示全部楼层
已经找到问题了
  R1 B# `3 I) U0 b0 X3 E% X在setportval 前后 都要进行一次缓冲区输入检测,原来我只是在setportval 前检测了,后没检测。
回复

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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