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

关于 CPU 温度 和风扇转速

[复制链接]
发表于 2010-2-25 21:21:15 | 显示全部楼层 |阅读模式
最近在写EPC的CPU温度 风扇转速获取方法/ I( P' \" H, s+ V5 }; r7 C
9 {# Z1 [8 o- M
问题9 ^  Y! n# w7 e  t8 G% i$ a
在获取CPU温度和风扇转速后& U# r- N' |$ K$ E- B2 A
再次循环获取 CPU温度,数据就出现错误了,为什么?# h# E( ^- y4 u8 E" _
做了缓冲区满空判断
1 i$ V+ {0 d; V; N- m下面是判断代码
0 o% N9 z. V- q1 @% W! K! d0 l# H# i. _* H- l7 h6 s7 h; e, Z
void check_buffer(int in_out,int port)
  y( i+ B' @4 T6 p% E8 v. O. d# B{
" [4 s7 B5 w4 {. D        DWORD dw_temp=0;
" `. _* u* _1 q4 o/ |        GetPortVal(port,&dw_temp,1);) f( V' ~, C$ n
        if(in_out==INPUT)
; D7 J+ g9 v& t  U1 l; p; H        {
; v  C5 r2 J1 N                while(dw_temp&0x02)
! w( y! W% \" X; z, V& p2 r0 x5 G                {9 J$ H- }( Y2 L- D* v' \% r5 |
                        GetPortVal(port,(&dw_temp),1);
# K- }& O; k5 G4 F" Q$ @5 d- [( `                        dw_temp=(BYTE)dw_temp;* S! b! J7 t; f1 z3 [- f) w
                        Sleep(5);}& q4 k- C: j4 V9 W
        }
% |3 R  ]- a. `        else if(in_out==OUTPUT)         / y6 I& m  ~, G# [2 C) e
{
! f2 |9 \8 L. |                while(!(dw_temp&0x01))1 m4 R, c0 |! a* k0 |3 b
                {+ |5 z( P& r% u& e) {3 n# R0 g& q
                        GetPortVal(port,&dw_temp,1);4 _7 z1 B* i8 u3 g/ F: k& |0 I
                        dw_temp=(BYTE)dw_temp;6 n/ a& z, h& F- a- }9 F
                        Sleep(50);9 [$ q! S% U' ~
                }
( M; \$ ?; y8 g9 _" u( J! c        }
- I" M# A- Y+ Z  f# p7 r
( B. ^8 d: X* Z. k5 V: a, x}
发表于 2010-2-26 15:24:49 | 显示全部楼层
能告诉我你是怎么读的吗
回复

使用道具 举报

 楼主| 发表于 2010-2-26 16:28:00 | 显示全部楼层
已经找到问题了1 d* L7 w5 y( S6 ^  z0 v" }" s
在setportval 前后 都要进行一次缓冲区输入检测,原来我只是在setportval 前检测了,后没检测。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-21 09:46 , Processed in 0.060203 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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