STM32的内部温度传感器
1、STM32的内部温度传感器 STM32内部温度传感器与ADC的通道16相连,与ADC配 合使用实现温度测量。测量范围–40~125℃,精度 ± 1.5℃ 操作流程: 1)、设置ADC相关参数 // ADC1 configuration ----------------------------- ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; ADC_InitStructure.ADC_ScanConvMode = ENABLE; ADC_InitStructure.ADC_ContinuousConvMode = ENABLE; ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None; ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; ADC_InitStructure.ADC_NbrOfChannel = 1; ADC_Init(ADC1, &ADC_InitStructure); 2)、选中ADC1的通道16作为输入,设置采样时间17.1us ( Ncycle × tADC = 17.1靤 )。 // ADC1 regular channel16 Temp Sensor configuration ADC_RegularChannelConfig(ADC1, ADC_Channel_16, 1, ADC_SampleTime_55Cycles5); 3)、设置寄存器ADC_CR2中的TSVREFE位激活温度传感器 // Enable the temperature sensor and vref internal channel ADC_TempSensorVrefintCmd(ENABLE); 4)、转换采样值为温度 ADC转换结束以后,读取ADC_DR寄存器中的结果,转换温度值计算公式如下: V25 - VSENSE T(℃) = ------------ + 25 Avg_Slope V25: 温度传感器在25℃时 的输出电压,典型值1.43 V。 VSENSE:温度传感器的当前输出电压,与ADC_DR 寄存器中的结果ADC_ConvertedValue之间的转换关系为: ADC_ConvertedValue * Vdd VSENSE = -------------------------- Vdd_convert_value(0xFFF) Avg_Slope:温度传感器输出电压和温度的关联参数,典型值4.3 mV/℃。 //Converted Temperature Vtemp_sensor = ADC_ConvertedValue * Vdd / Vdd_convert_value; Current_Temp = (V25 - Vtemp_sensor)/Avg_Slope + 25; 2、VDDA的电压范围 STM32的数据手册规定,VDD与VDDA之间的压差不能大于300mV。ADC的工作电压范围在2.4V~3.6V,供电电压VDD范围在2.0V~3.6V.
1、STM32的内部温度传感器 STM32内部温度传感器与ADC的通道16相连,与ADC配 合使用实现温度测量。测量范围–40~125℃,精度 ± 1.5℃ 操作流程: 1)、设置ADC相关参数 // ADC1 configuration ----------------------------- ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; ADC_InitStructure.ADC_ScanConvMode = ENABLE; ADC_InitStructure.ADC_ContinuousConvMode = ENABLE; ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None; ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; ADC_InitStructure.ADC_NbrOfChannel = 1; ADC_Init(ADC1, &ADC_InitStructure); 2)、选中ADC1的通道16作为输入,设置采样时间17.1us ( Ncycle × tADC = 17.1靤 )。 // ADC1 regular channel16 Temp Sensor configuration ADC_RegularChannelConfig(ADC1, ADC_Channel_16, 1, ADC_SampleTime_55Cycles5); 3)、设置寄存器ADC_CR2中的TSVREFE位激活温度传感器 // Enable the temperature sensor and vref internal channel ADC_TempSensorVrefintCmd(ENABLE); 4)、转换采样值为温度 ADC转换结束以后,读取ADC_DR寄存器中的结果,转换温度值计算公式如下: V25 - VSENSE T(℃) = ------------ + 25 Avg_Slope V25: 温度传感器在25℃时 的输出电压,典型值1.43 V。 VSENSE:温度传感器的当前输出电压,与ADC_DR 寄存器中的结果ADC_ConvertedValue之间的转换关系为: ADC_ConvertedValue * Vdd VSENSE = -------------------------- Vdd_convert_value(0xFFF) Avg_Slope:温度传感器输出电压和温度的关联参数,典型值4.3 mV/℃。 //Converted Temperature Vtemp_sensor = ADC_ConvertedValue * Vdd / Vdd_convert_value; Current_Temp = (V25 - Vtemp_sensor)/Avg_Slope + 25; 2、VDDA的电压范围 STM32的数据手册规定,VDD与VDDA之间的压差不能大于300mV。ADC的工作电压范围在2.4V~3.6V,供电电压VDD范围在2.0V~3.6V.