良许Linux教程网 干货合集 看看你的嵌入式设备CPU温度是多少,能烤肉吗?

看看你的嵌入式设备CPU温度是多少,能烤肉吗?

大家可能都见过一些大佬在电脑上烤肉的视频,这让我们不禁想知道电脑CPU的温度到底有多高。现在就让我们一起来了解一下我们电脑CPU的温度吧!

在PC端,我们有很多种方式可以查看CPU的温度,其中比较简单的方式可能就是在Windows下安装一些跑分软件,通过这些软件可以查看CPU的温度。例如,鲁大师就是其中一种常用的软件:

image-20231006204719806
image-20231006204719806

另外,Linux下也有很多手段查看,这里不做介绍。

下面我们介绍一些我么跑Linux的嵌入式设备CPU温度的方法。要获取得到CPU温度肯定需要传感器(不知道CPU的温度是不是这样采的)、相关驱动等。这些偏底层的我们就不去研究了,先用起来。

Linux内核中一般都带有CPU温度检测的驱动,与CPU相关的设备文件/sys/proc中。

我这里用的是百问网的开发板,其出厂带的系统CPU温度对象的虚拟文件在/sys/devices/virtual/thermal/thermal_zone0中,我们该目录下的temp文件就可以得到CPU的温度。比如:

cat /sys/devices/virtual/thermal/thermal_zone0/temp
image-20231006204724315
image-20231006204724315

这里的54242代表的是54.242℃

我们读取查看一个文件的内容,可以直接在shell命令行查看,也可以通过编程的方式查看。编码之前我们看一个图:

image-20231006204729071
image-20231006204729071

这是学习嵌入式Linux必须要熟知的一个基础图。我们编写应用程序可以有两种方法:一种是直接系统调用层接口(即open、 read、 write 等函数)、另一种是调用glibc的接口(即fopen、 fread、 fwrite 等 函数)间接地调用系统调用层接口。相关笔记推荐:

Linux下应用开发基础

什么是Linux内核空间与用户空间?

这里我们使用调用glibc的方式来编写我们读取CPU温度的应用程序,代码:

左右滑动查看全部代码>>>

#include   
#include 
#include 

int main(int arc, char *argv[])
{
 FILE *fp = NULL;
 unsigned int temperature = 0;
 
 fp = fopen ("/sys/devices/virtual/thermal/thermal_zone0/temp""r");
 if (fp printf("fopen error!\n");
  exit(1);
 }
 while(1)
 {
  fscanf(fp, "%d", &temperature);
  printf("cpu temperature: %d.%d\n", temperature/1000, temperature%1000/100);
  sleep(1);
 }
 fclose(fp);
 return 0;
}

交叉编译、传到板子里,运行:

image-20231006204734285
image-20231006204734285

以上就是本次关于获取CPU温度的分享,如有错误,欢迎指出。快去看看你的CPU温度能不能烤肉吧

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

137e00002230ad9f26e78-265x300
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部