STM32内部是有温度传感器的,以F1为例,它的温度采集范围是-40度到125度,精度为正负2度,采样通道为ADC1_INI6,上电控制位为TSVREFE位。
温度计算方式为:T(摄氏度) = (V25 - Vsense) / Avg_Slope + 25,其中V25为25摄氏度时的Vsense数值,一般取1.43;Avg_slope为温度与Vsense曲线的平均斜率,一般取0.0043;Vsense是内部传感器采集到的电压值。(以F1为例)
实验要求:ADC1通道16采集芯片内部温度传感器的电压,将电压转算为温度后显示在液晶屏上。
我们通过下表可以知道DMA1通道1的外设对应的就是ADC1的读取。
首先确定我们的最小刻度,Vref = 3.3V,所以0V <= Vin <= 3.3V,所以最小刻度是3.3V / 4096(2^12)。
接下来确定转换时间。采样时间239.5个ADC时钟周期为例,可以得到转换时间为21us。
时间转换公式参考如下公式:Tcvtmin=(12.5+X)周期=(12.5 + X)/(12MHz)=21us。