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

点击上方「嵌入式大杂烩」,「星标公众号」第一时间查看嵌入式笔记!

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

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

962335e8a7cd06247c57315ac4e5edd8.png

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

59e606731f65c5326b370d739d1885b7.png

这里的54242代表的是54.242℃

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

b7ec6b22e930a69b597982359d197c48.png

这是学习嵌入式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 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;
}

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

525b6ef34a2731738f923665fd243cf1.png

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

 3ecd5581b6144fdcd8cbb73cfe1a0dfe.png 

从0学ARM专辑

a989cc5ed14e57e6707c3a3375ed976e.gif

 1. 0. 到底什么是Cortex、ARMv8、arm架构、ARM指令集、soc?一文帮你梳理基础概念【科普】 

a989cc5ed14e57e6707c3a3375ed976e.gif

 2. 1. 从0开始学ARM-安装Keil MDK uVision集成开发环境

推荐阅读

【1】Linux面试题100道,看看会多少? 【2】Modbus协议概念最详细介绍 必读 【3】I2C基础知识入门 【4】多路复用IO内幕  【5】 又一华为程序员进了ICU:压垮一个家庭,一张结算单就够了! 必读

 点击“阅读原文”查看更多分享,欢迎点分享、收藏、点赞、在看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值