如何获得台式机的cpu温度和风扇的速度
不知道如何才能获得cpu的实际温度.(1)通过Wmi的话好像没有相关的值win32_fan等找不到相关的值
(2)通过win32API好像没有相关的函数
(3)网上有人说通过smbus的i2c可以。不过我从来每做过希望哪位大哥指点最好是有示例的代码。
(4)我看NB和Epc都是通过ec来实现当时在台式机上实现不了
总之希望各位老大多多帮忙,谢谢 哪位大哥帮帮忙啊,公司急着要的。 那得看你的系统怎么支持温度的吧,CPU旁边有没有sensor? 我是要获得台式机主板上的温度。之前有代码是用ec读的温度用在主板上不行。系统怎么支持温度你是说acpi或amp吗?sensor的话应该没有。我是需要一中通过的方式。希望有谁有源代码帮我下 台式主板使用的Supper I/O CHIIP的 Hardware monitor 功能來偵測,控制溫度及FAN Speed等值 谢谢你的回复我也找到了对应的资料。我的是winband的型号。我下了他的说明书。他说295是地址端口,296是数据端口。主板温度是8位的输入27h,这个可以得到正确的温度。cpu内部温度是9位的50h为高位,51h为低位。我于是用winio输入50h,51h到295,在296读出来是-1。不知道如何算,希望楼上的指教下。谢谢了 你的SIO 是winbond W83627DHG , 還是NCT6775F ?
是如何讀取的? 有沒有代碼? W83627EHF共可監測3個溫度: CPU溫度, System溫度, Aux溫度.
System溫度要讀取 bank 0 暫存器Index.
CPU溫度要讀取 bank 1 暫存器Index 和 Index.
Aux溫度要讀取 bank 2 暫存器Index 和 Index.
Index 為溫度的整數部分.
Index的 bit7 如果為 1, 代表溫度要加上 0.5 .
[ 本帖最后由 topway 于 2009-12-29 17:35 编辑 ] char a;
DWORD temp =0;
SetPortVal(0x295,0x50,1);
GetPortVal(0x296,&temp,1);
我是用winio来读的。文档我也看了。50h和51h那里应该如何来写呢。我这样写读出来的是-1,
SetPortVal(0x295,0x27,1);
GetPortVal(0x296,&temp,1);
这个系统温度读出来是对的。是不是bank1的位置要移位啊? 是award bios还是ami bios,一般award是295,296。但是ami的是A15,A16。 不过要看你是否有去改default的设定了,如果你把AMI的改成295,296也是可以的,所以要问你们做BIOS的了。
回复 11# laoshumice 的帖子
谢谢你楼上的。是不是说传感器的型号的话是没有关系的。只要读出bios的厂家,award bios的都是295,296,ami bios的都是A15,A16。除了这两中每其他的可能了把?回复 12# lzjdlsl 的帖子
我见过的好像就是这两个port了
页:
[1]