大家應該都看過一些大佬發(fā)的電腦CPU烤肉的視頻,電腦CPU的溫度真的有那么高嗎?我們一起來看一下咱們電腦CPU的溫度是多少?
PC端CPU溫度的方式有很多種,比較簡單的可能就是Windows下安裝一些跑分軟件,通過這些軟件可以看到CPU的溫度,比如魯大師:
另外,Linux下也有很多手段查看,這里不做介紹。
下面我們介紹一些我么跑Linux的嵌入式設備CPU溫度的方法。要獲取得到CPU溫度肯定需要傳感器(不知道CPU的溫度是不是這樣采的)、相關驅動等。這些偏底層的我們就不去研究了,先用起來。
Linux內核中一般都帶有CPU溫度檢測的驅動,與CPU相關的設備文件/sys、
/proc中。
我這里用的是百問網的開發(fā)板,其出廠帶的系統(tǒng)CPU溫度對象的虛擬文件在
/sys/devices/virtual/thermal/thermal_zone0中,我們該目錄下的
temp文件就可以得到CPU的溫度。比如:
cat?/sys/devices/virtual/thermal/thermal_zone0/temp
這里的54242代表的是54.242℃。
我們讀取查看一個文件的內容,可以直接在shell命令行查看,也可以通過編程的方式查看。編碼之前我們看一個圖:
這是學習嵌入式Linux必須要熟知的一個基礎圖。我們編寫應用程序可以有兩種方法:一種是直接系統(tǒng)調用層接口(即open、 read、 write 等函數)、另一種是調用glibc的接口(即fopen、 fread、 fwrite 等 函數)間接地調用系統(tǒng)調用層接口。相關筆記推薦:
Linux下應用開發(fā)基礎
什么是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;
}
交叉編譯、傳到板子里,運行:
以上就是本次關于獲取CPU溫度的分享,如有錯誤,歡迎指出。快去看看你的CPU溫度能不能烤肉吧
猜你喜歡
我的單片機轉嵌入式Linux之路
【Linux筆記】pc機_開發(fā)板_ubuntu互ping實驗
【Linux筆記】掛載網絡文件系統(tǒng)
1024G 嵌入式資源大放送!包括但不限于C/C++、單片機、Linux等。在公眾號聊天界面回復1024,即可免費獲??!
免責聲明:本文內容由21ic獲得授權后發(fā)布,版權歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯系我們,謝謝!