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

关于 CPU 温度 和风扇转速

[复制链接]
发表于 2010-2-25 21:21:15 | 显示全部楼层 |阅读模式
最近在写EPC的CPU温度 风扇转速获取方法% @' T5 D" ?" e% F) B6 _7 a
) F' z: I' B1 X
问题* Z$ v% R' T( w8 W
在获取CPU温度和风扇转速后6 ~, H0 R0 A$ X0 K2 W# n
再次循环获取 CPU温度,数据就出现错误了,为什么?* s; ~0 y6 K; r) h3 G
做了缓冲区满空判断
5 F+ c" Y: k# Q( C! Q& T' [/ @下面是判断代码. g& C. i+ a! T$ a4 P: N, b
8 f6 O  _  c2 i* ?
void check_buffer(int in_out,int port)
  v# f2 O: F$ y9 P- C4 k( S{! j! s" w+ ]. |7 O
        DWORD dw_temp=0;
4 ]$ K5 n! Y9 [        GetPortVal(port,&dw_temp,1);
% f* r* t& e0 G2 x$ P) [2 \: y        if(in_out==INPUT) 6 |- m- F+ Y; v0 l( u
        {
4 U6 C$ J% u2 T2 n                while(dw_temp&0x02)) C; ~5 q+ c: l8 ~5 N" Z8 C
                {
! d% s( m5 i7 e( c: \                        GetPortVal(port,(&dw_temp),1);
) w7 s2 ~' W2 q9 E1 {- l) Z+ \, M7 W                        dw_temp=(BYTE)dw_temp;7 Z' s0 T" b8 c) X4 T* N* c
                        Sleep(5);}; w/ ?9 S  l. X# N0 a6 f
        }
* O: A* {; O& l, z) `2 N        else if(in_out==OUTPUT)         0 {$ {% F$ q- T* y& M
{
- a) l/ o" n1 J+ k/ C                while(!(dw_temp&0x01))$ O4 L( N# j# v) Q9 k, v8 U3 D
                {6 ~8 X3 f% m# f1 c- ~6 t
                        GetPortVal(port,&dw_temp,1);
3 l. y! Z8 d% y' V0 m                        dw_temp=(BYTE)dw_temp;4 q) u6 s5 ?# g
                        Sleep(50);6 U4 F; b1 P* c
                }
" ^. `  `1 ~4 ~- c8 w7 U! i        }
, b8 a5 w# Y& w) \8 s
5 Y- U6 |! `: o+ l}
发表于 2010-2-26 15:24:49 | 显示全部楼层
能告诉我你是怎么读的吗
回复

使用道具 举报

 楼主| 发表于 2010-2-26 16:28:00 | 显示全部楼层
已经找到问题了
7 J% {; }) s% m- y0 K+ B" H' x在setportval 前后 都要进行一次缓冲区输入检测,原来我只是在setportval 前检测了,后没检测。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-9-18 20:10 , Processed in 0.059761 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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