1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
大家应该都看过一些大佬发的电脑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 等 函数)间接地调用系统调用层接口。相关笔记推荐: 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.%dn", temperature/1000, temperature%1000/100); sleep(1); } fclose(fp); return 0; } 交叉编译、传到板子里,运行: 以上就是本次关于获取CPU温度的分享,如有错误,欢迎指出。快去看看你的CPU温度能不能烤肉吧 |
|
|
|
只有小组成员才能发言,加入小组>>
820 浏览 0 评论
1162 浏览 1 评论
2537 浏览 5 评论
2872 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2722 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1125浏览 3评论
199浏览 2评论
465浏览 2评论
382浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
463浏览 1评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-30 22:27 , Processed in 1.264594 second(s), Total 80, Slave 61 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号