MT7981获取CPU温度的方法

1、shell操作

        cat  /sys/class/thermal/thermal_zone0/temp

2、C语言文件IO操作

zw@ubuntu:~/Work/OpwnWrt_Src/Get_CPU_Temp$ cat  Get_Temp.c 
#include <stdio.h>
#include <stdlib.h> 
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

#define TEMP_PATH "/sys/class/thermal/thermal_zone0/temp"
#define MAX_SIZE 32

double get_cpu_temp() 
{
    int fd;
    double temp=-1;
    char buf[MAX_SIZE]; 
    fd = open(TEMP_PATH, O_RDONLY);
    if (fd < 0) 
    {
        fprintf(stderr, "failed to open thermal_zone0/temp\n");
        return -1;
    }                
    if (read(fd, buf, MAX_SIZE) < 0) 
    {
        fprintf(stderr, "failed to read temp\n");
        return -1;
    }            
    temp = atoi(buf) / 1000.0;
    close(fd);
    return temp;
}

int main()
{
    double temp=-1;
    temp=get_cpu_temp();
    if (-1!=temp)
    {
        printf("temp: %.2f\n", temp);
    }
    return 0;
}

zw@ubuntu:~/Work/OpwnWrt_Src/Get_CPU_Temp$ 

支持检测各种硬件的基本信息,支持检测Intel CPU温度、Nvidia AMD独显的温度。 检测Intel CPU温度、芯片组信息貌似是全网首发 ?至少我百度搜了下是没搜到其他人发。 Intel CPU测温精准到每颗核心 ,而且支持检测封装温度。 调用了很多开发包,例如winring0、ADLSDK之类,用于获取ring0权限、温度信息之类。部分模块不是我自己写的,在模块信息里已标注原作者。。 就用了一个不开源的模块,用于取win7 64位系统的CPU占用率,但是怎么检查模块的安全性相信大家都会。 烤机支持16线程及以下, 支持单独烤某个核心或线程 。 没有使用第三方支持库,没有使用应用接口支持库所以 支持使用VC2015静态连接器编译以便降低误报率 。 建议用易语言 5.6或更高版本打开源码。 截图: 完美兼容Vista~Win10,win2000、XP、2003无法检测网卡。 Intel温度检测部分单看源码没法看懂,但是百度可以搜到很多原理介绍,搭配介绍看源码就非常容易懂了,不建议看Intel的开发文档,关于温度部分写的一点也不详细。 注意, 芯片组检测是根据设备ID匹配对应的芯片组信息,目前我已添加Intel 50~300系列所有芯片组的设备ID,可以自己根据需要增删。 不支持AMD CPU温度检测,不支持新卡显存检测。 AMD温度检测还在研究原理,后续我会在本帖更新,或者百度搜索图拉丁硬件检测查看更新。 不支持新卡显存检测的原因是wmi中显存的值是整数型,而新卡的显存已超过整数型的范围了。不知道微软啥时候能换成文本型。可以换用Nvapi或者adlsdk解决。 另外只开放源码, 界面版权并不开放 。这界面我已经用了4年以上了,即使你用我的界面也会被别人认出来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值