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

关于 CPU 温度 和风扇转速

[复制链接]
发表于 2010-2-25 21:21:15 | 显示全部楼层 |阅读模式
最近在写EPC的CPU温度 风扇转速获取方法
/ W: z, z, u3 c( F
7 f; H9 Q, t. l( m问题
7 o( d8 ~8 r* d4 B: E9 r在获取CPU温度和风扇转速后4 G9 h! M. y& L
再次循环获取 CPU温度,数据就出现错误了,为什么?; O' Z$ R0 {- ?# V
做了缓冲区满空判断
1 x) X! f9 k& ]0 P0 Y下面是判断代码
, N* l) e' P5 [1 A  C
  b: G) j3 C1 Rvoid check_buffer(int in_out,int port)
; b3 ]1 C: q6 i4 I, \4 L  c; P# y{
/ l* w/ @$ m( O- N        DWORD dw_temp=0;
+ O. r6 ]8 ]2 g# D: u. l        GetPortVal(port,&dw_temp,1);9 H2 u" y# V% S' u$ `" i/ }* A( E
        if(in_out==INPUT)
0 j2 L$ Y/ O' N6 x/ w- ]! B        {
! q  q( g5 Y, G( A                while(dw_temp&0x02)+ `3 z8 H3 N6 ^4 J  X. c
                {
9 F2 q8 v  z1 A! g( c6 j* M                        GetPortVal(port,(&dw_temp),1);
7 s/ ]1 Q3 M% Q1 S+ S  D                        dw_temp=(BYTE)dw_temp;' ^6 j' b# ~  u: p8 R
                        Sleep(5);}
+ m9 I  }) z( y0 H        }
& Z5 T! F+ ^. |7 U6 t        else if(in_out==OUTPUT)        
$ Y# t- X" u! @{' K# J5 K# q/ g& ?& }# k" Z8 |
                while(!(dw_temp&0x01)), S; S: v8 q6 L; a5 N
                {
! Q8 S- m& P% R                        GetPortVal(port,&dw_temp,1);/ w7 i& O  B% A! l. W* U
                        dw_temp=(BYTE)dw_temp;
# }+ T2 \) M6 B- z  t% N                        Sleep(50);: L8 z1 k+ x# A8 Z, V& ?7 e6 f
                }2 l- w% |8 Z6 q4 f" f3 E' x- l
        }
8 B2 r9 x! ?& Y0 f/ Q: X" c$ `$ N+ j: ~8 v. W" n
}
发表于 2010-2-26 15:24:49 | 显示全部楼层
能告诉我你是怎么读的吗
回复

使用道具 举报

 楼主| 发表于 2010-2-26 16:28:00 | 显示全部楼层
已经找到问题了; ]7 J! \$ C: W4 O
在setportval 前后 都要进行一次缓冲区输入检测,原来我只是在setportval 前检测了,后没检测。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-11-1 21:34 , Processed in 1.310872 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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