使用STM32CubeMX求得CPU芯片溫度
繼續(xù)完成后臺(tái)網(wǎng)友詢問(wèn):
如何使用STM32CubeMX設(shè)計(jì)代碼框架,然后實(shí)現(xiàn)CPU內(nèi)置溫度傳感器測(cè)量CPU芯片溫度,然后以串口輸出的形式輸出芯片的溫度值,數(shù)據(jù)更新周期1000ms。
STM32CubeMX工具的安裝及驅(qū)動(dòng)LED教程參見(jiàn)上一個(gè)網(wǎng)文:
4行代碼實(shí)現(xiàn)LED閃爍
實(shí)現(xiàn)環(huán)境為:
STM32CubeMX Version 5.3.0
STM32F103C8T6最小系統(tǒng)板
PC13與板載LED相連
今天為了跟上節(jié)內(nèi)容有所不同,我們這次選用STM32F407VGT6芯片測(cè)試,STM32CubeMX的工程設(shè)置基本類似,具體實(shí)現(xiàn)如下。
實(shí)現(xiàn)目標(biāo):
STM32CubeMX創(chuàng)建工程及參數(shù)配置
串口1實(shí)現(xiàn)printf輸出重定向
求得CPU內(nèi)置溫度傳感器的值,其實(shí)就是求得ADC的值,然后將電壓值轉(zhuǎn)為溫度值
本文使用的STM32CubeMX版本為5.3.0:
創(chuàng)建工程及參數(shù)配置
新建工程
選擇對(duì)應(yīng)的MCU
雙擊選擇的MCU,進(jìn)入配置界面:
配置RCC,使用外部晶振如圖所示:
SYS中要把SYS Mode中的Debug設(shè)置成 Serial Wire,如果是No Debug的話,可能第一次使用SWD下載之后,就不能二次下載程序了。
如果出現(xiàn)SWD模式不能下載的情況,可以嘗試按住復(fù)位鍵的情況下,下載固件。
配置USART1,模式為異步,不使用硬件流控。
配置ADC1的溫度傳感器通道
時(shí)鐘樹(shù)配置參考下圖所示:
工程設(shè)置:
生成代碼
串口1實(shí)現(xiàn)printf輸出重定向
打開(kāi)Keil5工程:
usart.c文件中添加如下代碼:
main.c文件中添加引用的頭文件,注意添加位置。
添加代碼
定義變量
其中,變量AD_Value為保存內(nèi)置溫度傳感器對(duì)應(yīng)ADC的AD值,變量temperate為保存當(dāng)前CPU芯片溫度。
添加代碼
ADC值獲取的語(yǔ)句:
HAL_ADC_Start(&hadc1);
HAL_ADC_PollForConversion(&hadc1,10);
if(HAL_IS_BIT_SET(HAL_ADC_GetState(&hadc1), HAL_ADC_STATE_REG_EOC))
{
AD_Value = HAL_ADC_GetValue(&hadc1);
temperate=(float)(AD_Value*3.3/4096); //轉(zhuǎn)為電壓值
}
printf打印輸出結(jié)果的語(yǔ)句:
printf("AD_Value : %.2f V \r\n",temperate);
printf("MCU Temperature : %.1f度\r\n",temperate);
將電壓值轉(zhuǎn)為溫度值的語(yǔ)句:
temperate=(temperate-0.76)/0.0025+25;
編譯,沒(méi)有錯(cuò)誤:
配置JLINK下載程序方式為SW:
點(diǎn)擊“Settings”設(shè)置如下:
確定之后,點(diǎn)擊下面1處進(jìn)行工程編譯,然后點(diǎn)擊下圖2處進(jìn)行程序下載。
下載程序之后,重新上電,發(fā)現(xiàn)串口助手上有當(dāng)前電壓和轉(zhuǎn)化后的溫度值打印出來(lái)。
其實(shí)我們可以看到,利用單次獲取的ADC的值計(jì)算溫度,這個(gè)溫度值不是很穩(wěn)定,實(shí)際使用的時(shí)候,可以多次獲取電壓值,然后取平均值能稍微穩(wěn)定些。
這個(gè)溫度值僅適合作為內(nèi)核溫度的一個(gè)參考使用。
總結(jié)
至此,通過(guò)兩篇網(wǎng)文,分享了使用STM32CubeMX創(chuàng)建工程并獲取CPU芯片溫度的全部過(guò)程,大家可以照著做一下哈。
有問(wèn)題可以后臺(tái)留言給我或者加我微信都可以。
六月份的“每月一練”內(nèi)容:
“基于單片機(jī)的智能風(fēng)扇”
想要實(shí)現(xiàn)什么功能,可以后臺(tái)留言或者加我微信留言給我。
微信號(hào):chengxuyuanxiaoha(程序員小哈)
6月1日公布作品功能點(diǎn)及所需要的功能模塊鏈接哈,請(qǐng)敬期待。
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問(wèn)題,請(qǐng)聯(lián)系我們,謝謝!