gcgc黄金城首页_黄金城棋牌游戏_gc黄金城监控|gcgc黄金城首页_黄金城棋牌游戏_gc黄金城传感器|gcgc黄金城首页_黄金城棋牌游戏_gc黄金城记录仪 - gcgc黄金城首页_黄金城棋牌游戏_gc黄金城

示例图片三
网站首页 > 新闻资讯 > 业界资讯

温度传感器的输出电压随温度线性变化

    STM32芯片的独特功能是在内部集成温度传感器,因为它是内置的,所以它测试芯片内部的温度。如果芯片的外载荷固定,则芯片的热量基本稳定。与外部温度相比,这种偏差也基本稳定。也就是说,利用STM32内部传感器测量外环,在一些恶劣的应用环境中,可以通过检测芯片内部来检测器件的工作环境温度。如果温度过高或过低,立即睡觉或停止跑步。它可以确保您的设备的可靠性。1。STM32内部温度传感器与ADC通道16连接,可与ADC一起实现温度测量;测量范围为40-125摄氏度,精度为1.5C.3。温度传感器产生随温度线性变化的电压。转换范围在2V转换公式中,如下图所示:

    

    公式中的参数在手册中描述。

    

    (2)在编写代码时,当测量要求不是很高时,可以简化公式。简化公式:温度=(1.42-ADC_Value*3.34096)*10004.35+25;编程:1。ADC的初始化和DMA的初始化可以称为帖子:{原件}MINI-STM32开发委员会介绍教程(6)基于DMAXtra=page=1思想的内部温度传感器是使用ADC1的第16个通道。2。ADC_TempSensor VrefintCmd(ENABLE);启用温度传感器和内部参考电压通道3。根据刚刚列出的公式计算温度=(1.42-ADC_Value*3.3/4096)*10004.35+25;(3)仿真调试(1)通过ULINK 2模拟器将实验板与Keil Vision3连接,使用MINI-4.35+25.STM32开发板连接串行线,连接UART 1和实验板上的PC串行口,打开ADC。在实验例程目录下的Uv 2程序,编译和链接工程;(2)运行Windows自己的超级终端串行通信程序(波特率115200,1个停止位,没有检查位,没有硬件流控制);或者使用其他串行通信程序;(3)单击PC.MDK的调试菜单,单击开始/停止调试会话;(4)全速ed运行程序,结果如下。

    

    基于MDK 3.5的项目下载:

    

    *********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------C1_DR_Address;DMA_Init..DMA_MemoryBaseAddr=(u32)ADCConvertedValue;DMA_Init..DMA_Init..DMA_DIR=DMA_DIR=.pheralSRC;DMA_DIpheralSRC;DMA_InIn..DMA_Buffer Size=1;DMA_Init..DMA_.pheral..DMA_.pheralStr.eInc.Inc.Inc.Inc.Inc.Inc.Inc.Inc.Inc.InpheralBaseAdd.d.d.bleInc.DMA_Init..DMA_Init结构.DMA_DMA_DMA_Init结构.DMA_InInInInInInInInInInInInInInIn结构结构DMA_DMA_DMA_DMA_DMA_DMA_26262626262626262626XXXXXXXX结构.DMA_DMA_Init结构.DMA_DMA_DMA_Init结构.DMA_DMA_DMA_外围数据尺寸。DMA_DMA_外围数据尺寸=DMA_DMA_DMA_外围数据尺寸=DMA_DMA_DMA_外围数据尺寸=DMA_DMA_DMA_外围数据大小_DMA_26262626262626XXXXXXXXXXXXXXXDMADMA_外围数据结构.DMA_外围数据大小=DMA_外围数据大小=DMA_外围数据大小_半字大小=DMA_Hal_哈利1,DMA_Init结构/启用DMA1通道1*/DMA DMA DMA 1通道1_DMA_Cmd(DMA1_信道1_DMA_DMA_1通道1,ENABLE);____1_通道1_通道1_通道1,通道1,通道1/ADC_Init..ADC_Init..ADC_IniADC_Scan.=ConvConvConvConvConvConvConvConvConvConvConvConvConvConvConvitE;ADC_InInInInInInInInInInInInIn..ADC结构。ADC_ADC_连续结构。ADC_连续连续模式=ENABLE;ADC_InInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInInnelConfig(ADC1,ADC_Channel_16, 1, ADC_SampleTime_5555Cycles5); /* * * TempTemptemperature sensor and internal temperature sensor and refref * TempTempTempTempTemperature channel */ / / ADC_TempTempTempTempTempTemperature */ / / ADC_Ref TempTempTempTemperature */ADC_refrefref */ / * Enable ADC1DMA*/ADC_DMACmd (ADC1, ENABLE);/* Enable ADC1*/ADC_Cmd (ADC1, ENABLE);/*启用ADC1ADC1 ADC1 ADC_ADC_Cmd(ADC1,启用)启动ADC_ResetCalibration*/*启动ADC C1*启动ADC*ADC of ADC1校准*/.(ADC_GetC)校准状态(ADC1);/*启动ADC1软件转换*ADC_Software StartConvCmd(ADC1, ENABLE)}

    

    ********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************For(i=16;I>0;i--){Delay_Ms(1);result+=ADCConvertedValue;}返回结果16;}

    

    ADC_Value = ADC_Value = ADC_filter (); vu16 Temperature= (1.42 - ADC_Value * 3.3/4096) * 1000/4.35 + 25; ADC_Value = Temperature; a = ADC_Value / 1000; B = ADC_Value - A * 1000) / 100; B = C = (ADC_Value - A * 1000 - B * 100) / 10; d = ADC_Value - A * a * Value - A * 1000 - Value - 100 - B * 100 - 100 * 100) / / 10; vu16 Tempart1_Put1 (PuTemperatMPut(Strip(;

    

    温度传感器与ADC1_IN16输入通道连接,ADC1_IN16输入通道将传感器的输出电压转换为数字值。

    

    温度传感器模拟输入的推荐采样时间为17.1s。图41是温度传感器的框图。当不使用时,传感器可以置于断电模式。

    

    注意:TSVREFE位必须设置为激活内部通道:ADC1_IN16(温度传感器)和ADC1_IN17(VREFINT)转换。

    

    温度传感器的输出电压随温度线性变化。由于生产工艺的改变,不同芯片的温度曲线的偏差会有所不同(最大相位差为45℃)。内部温度传感器比绝对温度传感器更适合于检测温度变化。如果需要精确的温度测量,则需要外部温度。应该使用传感器。

    

    这里:V25=25C处的VSENSE值Avg_Slope=平均温度斜率和VSENSE曲线(以mVC或VC表示)

    

    参考数据手册的电气特性部分中V25和Avg_Slope的实际值。注意:传感器有一个从断电模式唤醒到VSENSE的设置时间,可以输出正确的电平。ADC也有一个设置时间,所以为了缩短延迟,ADON和TSVREFE位应该同时设置。时间。

    


Powered by Inste 5.3.19 ©2008-2019 www.inste.com.cn