STM32內置一個溫度傳感器,通過ADC_IN16這個通道可以讀出溫度傳感器的電壓。在STM32的技術參考手冊中給出了一個計算公式: Temperature (in ℃) = {(V25 - VSENSE) / Avg_Slope} + 25 公式中的Vsense就是在ADC_IN16讀到的數值。Avg_Slope就是溫度與ADC數值轉換的斜率。 設想一個XY坐標,X軸為ADC的電壓讀數,Y軸為溫度,兩軸之間有一條直線代表了溫度與轉換電壓的關系;在這條直線上如果X軸電壓為V25時,Y軸即為25℃;當讀出的電壓是其它數值時,即讀出的電壓是Vsense時,使用這個公式就可以得到溫度的數值。 在STM32F103xx的數據手冊中分別給出了V25和Avg_Slope的值: V25 最小=1.34V 典型=1.43V 最大=1.52V Avg_Slope 最小=4.0 典型=4.3 最大=4.6 單位是 mV/℃ 例如讀到Vsense = 1.30V。分別取V25和Avg_Slope的典型值,計算得到: (1.43 - 1.30)/0.0043 + 25 = 55.23 所以溫度大約為 55℃ STM32F101xx數據手冊 STM32F103xx數據手冊 最初發表日期:2008-5-13 |