您的位置:首页 > 其它

STM32芯片内部温度传感器

2015-08-13 20:06 330 查看
1、STM32的内部温度传感器

STM32内部温度传感器与ADC的通道16相连,与ADC配合使用实现温度测量。测量范围–40~125℃,精度 ± 1.5℃

操作流程:

1)、设置ADC相关参数

ADC_InitTypeDef ADC_InitStructure;//ADC配置



ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;

ADC_InitStructure.ADC_ScanConvMode = DISABLE;

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);

ADC_RegularChannelConfig(ADC1, ADC_Channel_16, 1,ADC_SampleTime_55Cycles5); //每个采样通道配置-温度传感器是配置通道16,采样时间可以设置长一点,毕竟温度变化不快

ADC_TempSensorVrefintCmd(ENABLE);//使能温度传感器

ADC_Cmd(ADC1,ENABLE);

ADC_SoftwareStartConvCmd(ADC1, ENABLE);
//软件启动

2)、转换采样值为温度

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.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: