内部温度传感器实验

概述

在这里插入图片描述
STM32F40x有一个内部的温度传感器,可以用来测量CPU及周围的温度(TA)。
该温度传感器在内部和ADCx_IN16(F40xx/F41xx)或者ADCx_IN18(F42xx/F43xx)输入通道相连接,此通道把传感器输出的电压转换成数字值。
温度传感器模拟输入推荐采样时间是17.1us。
STM32的内部温度传感器支持的温度范围为:-40~125度。精度为土1.5℃左右。

内部温度传感器适合于检测温度的变化,不是测量绝对温度。测量绝度温度使用外部温度传感器。

使用注意事项

先激活ADC的内部通道:ADC_CCR的TSVREFE位(bit23)设置为1,即启用内部温度传感器

计算温度

在这里插入图片描述
内部温度传感器固定的连接在ADC的通道16上,即读取通道16的值就是温度传感器返回来的电压值
公式:T(℃)={(V25-Vsense ) /Avg_Slope}+25

V25=Vsense在25度时的数值(典型值为:0.76)。
Avg_Slope=温度与Vsense曲线的平均斜率(单位为mv/℃或
uv/℃)(典型值为2.5MV/℃)。

开启内部温度传感器步骤

①选择ADC_IN16或者ADC_IN16输入通道。
②设置采样时间大于17.1us.
③设置ADC__CCR的TSVREFE位,打开内部温度传感器。
④设置ADC_CR2的SWSTART位启动转换。
⑤读取ADC结果。
⑥计算。

实验程序

使能内部温度传感器
 ADC_TempSensorVrefintCmd(ENABLE);
计算温度值
short Get_Temprate(void)
{
	u32 adcx;
	short result;
 	double temperate;
	adcx=Get_Adc_Average(ADC_Channel_16,10);	//10次取平均值
	temperate=(float)adcx*(3.3/4096);		//电压值
	temperate=(temperate-0.76)/0.0025 + 25; //转换温度值
	result=temperate*=100;				//扩大100倍
	return result;
}
	 
main函数
int main(void)
{ 
	short temp; 
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
	delay_init(168);     
	uart_init(115200);	 

	LED_Init();				
 	LCD_Init();    
	Adc_Init();         //内部温度传感器初始化
	POINT_COLOR=RED; 
	LCD_ShowString(30,50,200,16,16,"Explorer STM32F4");	
	LCD_ShowString(30,70,200,16,16,"Temperature TEST");
	LCD_ShowString(30,90,200,16,16,"ATOM@ALIENTEK");
	LCD_ShowString(30,110,200,16,16,"2014/5/6");	  
	POINT_COLOR=BLUE;//设置字体颜色 
	LCD_ShowString(30,140,200,16,16,"TEMPERATE: 00.00C");//先在固定位置显示小数      
	while(1)
	{
		temp=Get_Temprate();	//得到温度值
		if(temp<0)
		{
			temp=-temp;
			LCD_ShowString(30+10*8,140,16,16,16,"-");	    //显示负号
		}else LCD_ShowString(30+10*8,140,16,16,16," ");	//无符号
		
		LCD_ShowxNum(30+11*8,140,temp/100,2,16,0);		//显示整数部分
		LCD_ShowxNum(30+14*8,140,temp%100,2,16,0);		//显示小数部分
		 
		LED0=!LED0;
		delay_ms(250);	
	}
}

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

。✧* ꧁流痕꧂✧*。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值