欢迎来到天天文库
浏览记录
ID:39853311
大小:441.21 KB
页数:6页
时间:2019-07-13
《stm32 内部温度传感器》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、STM32内部温度传感器的使用与计算STM32内置一个温度传感器,通过ADC_IN16这个通道可以读出温度传感器的电压。在中给出了一个计算公式:Temperature(in℃)={(V25-VSENSE)/Avg_Slope}+25公式中的Vsense就是在ADC_IN16读到的数值。Avg_Slope就是温度与ADC数值转换的斜率。设想一个XY坐标,X轴为ADC的电压读数,Y轴为温度,两轴之间有一条直线代表了温度与转换电压的关系;在这条直线上如果X轴电压为V25时,Y轴即为25℃;当读出的电压是其它数值时,即读出的电压是Vs
2、ense时,使用这个公式就可以得到温度的数值。在STM32F103xx的数据手册中分别给出了V25和Avg_Slope的值:V25最小=1.34V典型=1.43V最大=1.52VAvg_Slope最小=4.0典型=4.3最大=4.6单位是mV/℃例如读到Vsense=1.30V。分别取V25和Avg_Slope的典型值,计算得到:(1.43-1.30)/0.0043+25=55.23所以温度大约为55℃1.STM32内部温度传感器与ADC的通道16相连,与ADC配合使用实现温度测量;2.测量范围–40~125℃,精度±1.5℃
3、。3.温度传感器产生一个随温度线性变化的电压,转换范围在2V4、能温度传感器和内部参考电压通道3.简单的数字滤波一下检测到的ADC的值4.按照刚才列出的公式计算就OK啦呵呵第二步是做什么的呢?看这个图就晓得啦贴一下初始化的函数/********************************************************************************FunctionName:ADC_Configuration*Description:ADC_Configuration*Input:None*Output:None*Return:None*********5、**********************************************************************/voidADC_Configuration(void){/*DMA1channel1configuration----------------------------------------------*/DMA_DeInit(DMA1_Channel1);DMA_InitStructure.DMA_PeripheralBaseAddr=ADC1_DR_Address;DMA_InitS6、tructure.DMA_MemoryBaseAddr=(u32)&ADCConvertedValue;DMA_InitStructure.DMA_DIR=DMA_DIR_PeripheralSRC;DMA_InitStructure.DMA_BufferSize=1;DMA_InitStructure.DMA_PeripheralInc=DMA_PeripheralInc_Disable;DMA_InitStructure.DMA_MemoryInc=DMA_MemoryInc_Disable;DMA_InitStructu7、re.DMA_PeripheralDataSize=DMA_PeripheralDataSize_HalfWord;DMA_InitStructure.DMA_MemoryDataSize=DMA_MemoryDataSize_HalfWord;DMA_InitStructure.DMA_Mode=DMA_Mode_Circular;DMA_InitStructure.DMA_Priority=DMA_Priority_High;DMA_InitStructure.DMA_M2M=DMA_M2M_Disable;DMA_Ini8、t(DMA1_Channel1,&DMA_InitStructure);/*EnableDMA1channel1*/DMA_Cmd(DMA1_Channel1,ENABLE);/*ADC1configuration-------------------------------
4、能温度传感器和内部参考电压通道3.简单的数字滤波一下检测到的ADC的值4.按照刚才列出的公式计算就OK啦呵呵第二步是做什么的呢?看这个图就晓得啦贴一下初始化的函数/********************************************************************************FunctionName:ADC_Configuration*Description:ADC_Configuration*Input:None*Output:None*Return:None*********
5、**********************************************************************/voidADC_Configuration(void){/*DMA1channel1configuration----------------------------------------------*/DMA_DeInit(DMA1_Channel1);DMA_InitStructure.DMA_PeripheralBaseAddr=ADC1_DR_Address;DMA_InitS
6、tructure.DMA_MemoryBaseAddr=(u32)&ADCConvertedValue;DMA_InitStructure.DMA_DIR=DMA_DIR_PeripheralSRC;DMA_InitStructure.DMA_BufferSize=1;DMA_InitStructure.DMA_PeripheralInc=DMA_PeripheralInc_Disable;DMA_InitStructure.DMA_MemoryInc=DMA_MemoryInc_Disable;DMA_InitStructu
7、re.DMA_PeripheralDataSize=DMA_PeripheralDataSize_HalfWord;DMA_InitStructure.DMA_MemoryDataSize=DMA_MemoryDataSize_HalfWord;DMA_InitStructure.DMA_Mode=DMA_Mode_Circular;DMA_InitStructure.DMA_Priority=DMA_Priority_High;DMA_InitStructure.DMA_M2M=DMA_M2M_Disable;DMA_Ini
8、t(DMA1_Channel1,&DMA_InitStructure);/*EnableDMA1channel1*/DMA_Cmd(DMA1_Channel1,ENABLE);/*ADC1configuration-------------------------------
此文档下载收益归作者所有