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

关于 CPU 温度 和风扇转速

[复制链接]
发表于 2010-2-25 21:21:15 | 显示全部楼层 |阅读模式
最近在写EPC的CPU温度 风扇转速获取方法* J2 P* ~. K( n

1 L" [. O$ F& q/ c# y: ~$ o' z问题) ?" V4 J: x# n" \
在获取CPU温度和风扇转速后
5 s$ u2 Z6 v, G7 c8 T' S$ s6 ^2 r; z再次循环获取 CPU温度,数据就出现错误了,为什么?
; |" h" ?6 F2 Q, K1 v+ z做了缓冲区满空判断
- S8 q4 B0 }6 L6 }, a下面是判断代码
+ z. c9 _8 k  L: y
$ o  J2 O2 n1 P/ ~" Evoid check_buffer(int in_out,int port), u/ c" d6 ?3 j+ ]+ K
{* T: g2 r& E% r/ f4 R
        DWORD dw_temp=0;+ L: y6 f% ~9 P; E/ a! P; l
        GetPortVal(port,&dw_temp,1);
  [, p! U* p4 Q# L! J/ h. F        if(in_out==INPUT) 6 H! L( y$ u4 Y+ l; D
        {4 w9 `5 W$ l0 E  `6 O7 `
                while(dw_temp&0x02)
/ y6 G, i, o. J: u9 B! v                {
; p: `# j1 \* C                        GetPortVal(port,(&dw_temp),1);0 @+ K; C  C( ]
                        dw_temp=(BYTE)dw_temp;- B2 X/ P4 u$ ~9 G! U1 e$ e$ {
                        Sleep(5);}
* I6 a9 G9 T0 P1 K% ]6 |$ D        }
5 h; ?0 g( F# H/ N  ^; C5 p( j        else if(in_out==OUTPUT)         ; C4 ]! P1 e/ h3 h* x9 {( {' a
{5 v* X8 H' N" Y, l7 ^9 b, r1 H. y
                while(!(dw_temp&0x01))3 y2 r. \) n2 o
                {& g. b. e1 C% v/ Z. ~/ i2 p
                        GetPortVal(port,&dw_temp,1);
$ h+ J7 g# i  o                        dw_temp=(BYTE)dw_temp;0 j' ?1 O  _1 E2 ~
                        Sleep(50);& }2 ^1 W8 h' {9 `) Z4 K1 P( Z
                }2 }: g0 {  ^7 _- \
        }
9 l$ p6 m$ ~# p' V0 H5 L5 {% d# V2 E2 [
}
发表于 2010-2-26 15:24:49 | 显示全部楼层
能告诉我你是怎么读的吗
回复

使用道具 举报

 楼主| 发表于 2010-2-26 16:28:00 | 显示全部楼层
已经找到问题了: |$ |% E1 C/ b# I  D$ _6 v
在setportval 前后 都要进行一次缓冲区输入检测,原来我只是在setportval 前检测了,后没检测。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-9-1 17:41 , Processed in 0.102719 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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