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