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

关于 CPU 温度 和风扇转速

[复制链接]
发表于 2010-2-25 21:21:15 | 显示全部楼层 |阅读模式
最近在写EPC的CPU温度 风扇转速获取方法, a0 G" |  Y# ], s  H
! C: e1 E6 w7 @8 J* f
问题6 Q, p% i: T% L+ ?; z4 _' j( E
在获取CPU温度和风扇转速后8 D( Q( u3 e: ~! T4 `1 e% F; o
再次循环获取 CPU温度,数据就出现错误了,为什么?
5 E' q1 l2 l' J% U做了缓冲区满空判断8 `+ L! C" C0 T% E* S
下面是判断代码! `4 K7 Z8 l4 K) Y, Q9 c; C

9 D. }( ?  H; H; a8 bvoid check_buffer(int in_out,int port)* L% e6 Q' o0 F  t" v
{
+ s, c. c' y) H- x# V, D4 Q& w6 i        DWORD dw_temp=0;+ u4 L" N5 E  X4 C+ i  d
        GetPortVal(port,&dw_temp,1);
- o% H% f3 [: C4 i  |) }- b        if(in_out==INPUT)
5 {. Y$ z9 }0 ^" b' @        {
8 Q; Q4 U$ Y$ H: P# j7 f                while(dw_temp&0x02)2 z9 _, J" s. |" L3 U4 Z1 T5 i+ S
                {1 h$ g/ J' c& ^8 B, K' r8 i
                        GetPortVal(port,(&dw_temp),1);# ?7 T1 q0 W6 B0 a- {7 _% l
                        dw_temp=(BYTE)dw_temp;; D& d6 {; n% [" ~
                        Sleep(5);}0 ]/ H7 N9 h# k& W2 `0 Z! G- e3 N
        }- J+ V4 g4 O4 }0 I, w" z$ F
        else if(in_out==OUTPUT)        
5 L7 D/ T9 m( `6 _/ [& n{
, k1 U. Q* F) R: ~% H" z  h                while(!(dw_temp&0x01))9 c# U$ d& B6 J  y
                {. X3 F4 C. Q) D8 s
                        GetPortVal(port,&dw_temp,1);" u& M* h; Y& B5 O# W
                        dw_temp=(BYTE)dw_temp;! i( R" d+ K4 f
                        Sleep(50);
7 D  ?* s0 f3 a2 z& S                }4 p3 q6 l' A, O2 X5 x3 I) u
        }7 S) f. |/ P9 m' S1 ?

* Q& ]" N- v) |2 W9 _( u- `}
发表于 2010-2-26 15:24:49 | 显示全部楼层
能告诉我你是怎么读的吗
回复

使用道具 举报

 楼主| 发表于 2010-2-26 16:28:00 | 显示全部楼层
已经找到问题了
# n' F/ s) }. l) V6 Q2 W% ~: ?8 E在setportval 前后 都要进行一次缓冲区输入检测,原来我只是在setportval 前检测了,后没检测。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-7-21 22:14 , Processed in 0.067904 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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