日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用STM32CubeMX求得CPU芯片温度

發布時間:2025/4/5 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用STM32CubeMX求得CPU芯片温度 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

繼續完成后臺網友詢問:

如何使用STM32CubeMX設計代碼框架,然后實現CPU內置溫度傳感器測量CPU芯片溫度,然后以串口輸出的形式輸出芯片的溫度值,數據更新周期1000ms。

STM32CubeMX工具的安裝及驅動LED教程參見上一個網文:

4行代碼實現LED閃爍
實現環境為:

  • STM32CubeMX Version 5.3.0

  • STM32F103C8T6最小系統板

  • PC13與板載LED相連

今天為了跟上節內容有所不同,我們這次選用STM32F407VGT6芯片測試,STM32CubeMX的工程設置基本類似,具體實現如下。

實現目標:

  • STM32CubeMX創建工程及參數配置

  • 串口1實現printf輸出重定向

  • 求得CPU內置溫度傳感器的值,其實就是求得ADC的值,然后將電壓值轉為溫度值

本文使用的STM32CubeMX版本為5.3.0:

創建工程及參數配置

  • 新建工程

  • 選擇對應的MCU

  • 雙擊選擇的MCU,進入配置界面:

配置RCC,使用外部晶振如圖所示:

SYS中要把SYS Mode中的Debug設置成 Serial Wire,如果是No Debug的話,可能第一次使用SWD下載之后,就不能二次下載程序了。

如果出現SWD模式不能下載的情況,可以嘗試按住復位鍵的情況下,下載固件。

  • 配置USART1,模式為異步,不使用硬件流控。

  • 配置ADC1的溫度傳感器通道

  • 時鐘樹配置參考下圖所示:

  • 工程設置:

  • 生成代碼

串口1實現printf輸出重定向

  • 打開Keil5工程:

  • usart.c文件中添加如下代碼:

  • main.c文件中添加引用的頭文件,注意添加位置。

添加代碼

  • 定義變量

其中,變量AD_Value為保存內置溫度傳感器對應ADC的AD值,變量temperate為保存當前CPU芯片溫度。

  • 添加代碼

ADC值獲取的語句:

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); //轉為電壓值 }

printf打印輸出結果的語句:

printf("AD_Value : %.2f V \r\n",temperate);printf("MCU Temperature : %.1f度\r\n",temperate);

將電壓值轉為溫度值的語句:

temperate=(temperate-0.76)/0.0025+25;
  • 編譯,沒有錯誤:

  • 配置JLINK下載程序方式為SW:

  • 點擊“Settings”設置如下:

  • 確定之后,點擊下面1處進行工程編譯,然后點擊下圖2處進行程序下載。

下載程序之后,重新上電,發現串口助手上有當前電壓和轉化后的溫度值打印出來。

其實我們可以看到,利用單次獲取的ADC的值計算溫度,這個溫度值不是很穩定,實際使用的時候,可以多次獲取電壓值,然后取平均值能稍微穩定些。

這個溫度值僅適合作為內核溫度的一個參考使用。

總結

至此,通過兩篇網文,分享了使用STM32CubeMX創建工程并獲取CPU芯片溫度的全部過程,大家可以照著做一下哈。

總結

以上是生活随笔為你收集整理的使用STM32CubeMX求得CPU芯片温度的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。