嵌入式Linux | 如何查看嵌入式设备CPU的温度?
发布日期:2021-06-29 05:19:04 浏览次数:3 分类:技术文章

本文共 1372 字,大约阅读时间需要 4 分钟。

1024G 嵌入式资源大放送!包括但不限于C/C++、单片机、Linux等。关注微信公众号【嵌入式大杂烩】,回复1024,即可免费获取!

大家应该都看过一些大佬发的电脑CPU烤肉的视频,电脑CPU的温度真的有那么高吗?我们一起来看一下咱们电脑CPU的温度是多少?

PC端CPU温度的方式有很多种,比较简单的可能就是Windows下安装一些跑分软件,通过这些软件可以看到CPU的温度,比如鲁大师:

另外,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

这里的54242代表的是54.242℃

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

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

这里我们使用调用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 < 0) {  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;}

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

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


猜你喜欢

1024G 嵌入式资源大放送!包括但不限于C/C++、单片机、Linux等。关注微信公众号【嵌入式大杂烩】,回复1024,即可免费获取!


 

转载地址:https://blog.csdn.net/zhengnianli/article/details/109712907 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:嵌入式Linux | 一文理清那些令人眼花缭乱的文件系统!
下一篇:程序人生 | 我的单片机转嵌入式Linux之路

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年04月09日 22时34分09秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章