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

关于 CPU 温度 和风扇转速

[复制链接]
发表于 2010-2-25 21:21:15 | 显示全部楼层 |阅读模式
最近在写EPC的CPU温度 风扇转速获取方法
  F/ B, V3 H) t  b
$ \9 G5 y; b* B0 j4 \. s1 `% F5 j问题. N* n! x4 [0 W( S( H* r8 a
在获取CPU温度和风扇转速后8 A7 U1 i3 v. Y( `# [2 e/ ^
再次循环获取 CPU温度,数据就出现错误了,为什么?
& E2 X" @8 i, v/ ^5 c3 k做了缓冲区满空判断
- y' B0 j: C2 M6 L下面是判断代码
! g% S& [; G1 i  {1 h0 I# e% n
1 D; i9 ?2 j& Zvoid check_buffer(int in_out,int port)2 i) o8 w& K8 z6 S" t2 A
{
1 y2 h7 J3 z9 z8 f2 I& g3 {& \8 @        DWORD dw_temp=0;
3 ?( P, ^3 ]' i" v& a/ d/ V! i  L        GetPortVal(port,&dw_temp,1);
/ P; ?" c5 c6 C        if(in_out==INPUT)
( I" p! ^. C1 B: |; A/ H& ~        {
: t7 y- q! M. g                while(dw_temp&0x02)2 j; `1 f; p1 y" X! D& t
                {
5 Q& b0 H8 N1 a0 l9 ?' S                        GetPortVal(port,(&dw_temp),1);  q$ I& m5 B7 d' B
                        dw_temp=(BYTE)dw_temp;- B% A# p- D' M9 p( ]* M0 C5 M
                        Sleep(5);}( g5 M  s% A5 i7 [
        }
) \0 {$ e0 e4 L) R. p4 w2 q; i        else if(in_out==OUTPUT)         / ~- L; |9 [! D" b& F4 C
{8 i4 V$ e! Q2 R; r: z3 i7 @- W
                while(!(dw_temp&0x01))% G! v) X8 c3 J9 l
                {
& h" Q* ?4 z0 Q1 d: u# z+ |                        GetPortVal(port,&dw_temp,1);
% d4 k% \0 Q! l0 |8 O                        dw_temp=(BYTE)dw_temp;
5 e: K6 ~' W$ N                        Sleep(50);; i8 W/ ^$ G5 z( }; \
                }9 K/ v6 `. L+ u5 B
        }
& }7 F. R. {# t# O, _1 Q# R- O. B
9 K* Q( B# x8 P}
发表于 2010-2-26 15:24:49 | 显示全部楼层
能告诉我你是怎么读的吗
回复

使用道具 举报

 楼主| 发表于 2010-2-26 16:28:00 | 显示全部楼层
已经找到问题了
' J9 x, B1 T$ H7 ?2 _1 A3 d, I3 S' ^在setportval 前后 都要进行一次缓冲区输入检测,原来我只是在setportval 前检测了,后没检测。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-17 13:46 , Processed in 0.030131 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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