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

关于 CPU 温度 和风扇转速

[复制链接]
发表于 2010-2-25 21:21:15 | 显示全部楼层 |阅读模式
最近在写EPC的CPU温度 风扇转速获取方法# V/ j( h" ]* ?" L
7 I* A) R& r# }" r: K) t' u2 D
问题' \# R2 C+ J5 A/ I0 T0 O* S
在获取CPU温度和风扇转速后
  o7 y% W$ v0 O- |  z8 K7 z2 x再次循环获取 CPU温度,数据就出现错误了,为什么?/ o+ S" T, m: |/ ]' [
做了缓冲区满空判断7 D! w. K8 T. V6 }7 {
下面是判断代码, A$ |* {1 p# x5 k

+ J8 b* I, b% z- tvoid check_buffer(int in_out,int port)
6 e( i) N( y& A$ Q8 ]2 L{
) X& u, M7 m3 B1 \$ M        DWORD dw_temp=0;
- M0 _% J! v" y/ K8 e4 o- c; X        GetPortVal(port,&dw_temp,1);- `' {" w( q$ f. v& O: h
        if(in_out==INPUT)
  U$ y0 h* N5 _7 q; S        {: A) p) O" v2 q8 A* |! I
                while(dw_temp&0x02)
3 U2 j, K" H  S6 k                {
  x8 A; s8 @* h, ]7 \  w9 _) u                        GetPortVal(port,(&dw_temp),1);
! |# N& u  E+ s: x0 z( {+ y                        dw_temp=(BYTE)dw_temp;9 A& ]5 ^# b4 s
                        Sleep(5);}
" i7 `4 {1 @2 q, r$ V& [2 k9 o" Y) h        }$ r/ }9 [: _: q5 ^6 y
        else if(in_out==OUTPUT)        
. W* r; c: x6 b{
" b/ @3 o7 t. h6 [0 @( m2 g                while(!(dw_temp&0x01))  @+ k. ~$ ^9 y
                {
. b, X) J" h2 r( a                        GetPortVal(port,&dw_temp,1);
0 U' o4 F; d+ m5 T' Q) r                        dw_temp=(BYTE)dw_temp;
- V( M; T& N' a, F4 W' U                        Sleep(50);4 D5 M( x: c* W, f
                }
; L4 _' q0 V4 w5 E) W        }$ m: h" C# \) L4 V! o

) m7 i3 l- M1 P8 q5 ]0 r}
发表于 2010-2-26 15:24:49 | 显示全部楼层
能告诉我你是怎么读的吗
回复

使用道具 举报

 楼主| 发表于 2010-2-26 16:28:00 | 显示全部楼层
已经找到问题了
, g1 R! Q7 X" ?: H# e0 n5 Q2 b在setportval 前后 都要进行一次缓冲区输入检测,原来我只是在setportval 前检测了,后没检测。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-18 22:45 , Processed in 0.056433 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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