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

关于 CPU 温度 和风扇转速

[复制链接]
发表于 2010-2-25 21:21:15 | 显示全部楼层 |阅读模式
最近在写EPC的CPU温度 风扇转速获取方法
8 k3 `& T" ]! G' H2 T
& ?) f9 J/ s5 G: L+ S问题  h3 r& y' O3 ^" |: f4 S
在获取CPU温度和风扇转速后
0 k2 t$ N8 V! \: z' J再次循环获取 CPU温度,数据就出现错误了,为什么?3 ~5 b9 q9 Q5 c1 {" v
做了缓冲区满空判断) w# j) Y. g4 `
下面是判断代码; p" ~% j7 G9 p  I

0 B, @! u/ e! S  [& evoid check_buffer(int in_out,int port)
, k3 G; p* v4 {3 i  g7 ~{4 |& `- v8 Y& w) p% j1 t- w
        DWORD dw_temp=0;
" X' _! Z# H7 P        GetPortVal(port,&dw_temp,1);  L' a  a* F0 D1 S$ v
        if(in_out==INPUT)
+ Z/ ^% w, r4 ]6 {$ f7 ~3 N, {        {. b3 k1 t8 V7 P% J- V( A; d
                while(dw_temp&0x02)# @! L& z5 b' C& A6 O7 J
                {
6 J, K% R' Q6 ?: S* Y3 A" s, Y# [                        GetPortVal(port,(&dw_temp),1);
2 z8 D. d. ~  q                        dw_temp=(BYTE)dw_temp;
6 {! s7 V2 B$ g7 C; m                        Sleep(5);}, f( L$ q; R( S: d/ m4 v- P& p
        }1 f7 x; j4 |; d* u$ h
        else if(in_out==OUTPUT)         : y3 a; b& L% l; o( {7 R
{
/ N1 Z: X- |1 n& i) z                while(!(dw_temp&0x01))* x8 }( r2 \' u
                {
6 N5 p, T4 |0 ?# [2 J                        GetPortVal(port,&dw_temp,1);
7 q* \0 ~( u5 C7 ]                        dw_temp=(BYTE)dw_temp;
" ^( j) Q, t: B6 p: j$ p                        Sleep(50);+ N/ d0 Q% n8 j+ r6 R2 R" r
                }
3 r/ n" \' H; x0 J+ T) d        }5 z4 ~, E# |3 g8 |$ m5 x& a

) F# O- t3 j0 I( ~3 g}
发表于 2010-2-26 15:24:49 | 显示全部楼层
能告诉我你是怎么读的吗
回复

使用道具 举报

 楼主| 发表于 2010-2-26 16:28:00 | 显示全部楼层
已经找到问题了
/ _9 b- l' B4 A, `0 _8 i在setportval 前后 都要进行一次缓冲区输入检测,原来我只是在setportval 前检测了,后没检测。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-15 08:26 , Processed in 0.250666 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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