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

关于 CPU 温度 和风扇转速

[复制链接]
发表于 2010-2-25 21:21:15 | 显示全部楼层 |阅读模式
最近在写EPC的CPU温度 风扇转速获取方法
! d) Y! j; p6 J
3 T0 Y2 M8 }1 t2 V+ j+ {  K问题
" m  ]$ `: E  z+ w/ F) d在获取CPU温度和风扇转速后6 q% l( q: w) o' i$ y4 K5 z
再次循环获取 CPU温度,数据就出现错误了,为什么?1 F$ v# g* R7 ?7 r
做了缓冲区满空判断2 d' n5 H4 A) ]% }& m9 Y4 G" v9 ~; U
下面是判断代码- K3 W) J3 z! q. \* h0 `

+ [4 ?) J! b1 o0 }# Gvoid check_buffer(int in_out,int port)6 K! d/ g7 b. M
{$ y7 q& W  `9 G; H4 l6 ?
        DWORD dw_temp=0;
8 N3 S$ |' L7 v: U7 a" k+ i% X        GetPortVal(port,&dw_temp,1);$ C( f5 x+ n; u0 `5 R0 `& W
        if(in_out==INPUT)
- e  u! |% E& v        {9 W0 a4 }. i1 U& p
                while(dw_temp&0x02)
! k0 t5 ]6 k# d+ @                {
7 T$ p' A. U/ _- H2 P8 c/ l                        GetPortVal(port,(&dw_temp),1);
6 B% ]& ?- d9 y* I+ Z* r: p" D7 D5 ?                        dw_temp=(BYTE)dw_temp;) Q. A; p5 G; X6 ?8 R3 C
                        Sleep(5);}
  L+ }& q3 K4 J5 l0 o9 |2 H6 }        }( d3 Q7 Q3 n7 \+ h) r1 x4 R0 t0 N
        else if(in_out==OUTPUT)        
5 P$ [; U7 j3 K+ u{
4 ^0 P- X6 H! N( g" ^6 M                while(!(dw_temp&0x01))
! O" g. a% b* d3 v  Y                {, g% V: L/ d7 j: G5 I
                        GetPortVal(port,&dw_temp,1);- j0 a6 |8 ?. r8 ]' A8 W
                        dw_temp=(BYTE)dw_temp;
1 D  p0 L% a( W- f/ A/ z                        Sleep(50);7 H3 P5 ~  r' a  E: `; q2 e
                }: m* K, [* w$ S8 u6 R. {
        }% i+ q& f# p1 X# }5 c* H6 d0 t
! j+ q2 X4 B7 V( u
}
发表于 2010-2-26 15:24:49 | 显示全部楼层
能告诉我你是怎么读的吗
回复

使用道具 举报

 楼主| 发表于 2010-2-26 16:28:00 | 显示全部楼层
已经找到问题了
+ z3 e2 X+ @& t1 c( w在setportval 前后 都要进行一次缓冲区输入检测,原来我只是在setportval 前检测了,后没检测。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-5-16 08:28 , Processed in 0.052087 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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