当前位置:首页 > 单片机 > 单片机
[导读] 温度传感器可以用来测量器件周围的温度(TA)。温度传感器在内部和ADCx_IN16输入通道相连接,此通道把传感器输出的电压转换成数字值。温度传感器模拟输入推荐采样时间是17.1μs。当没有被使用时,传感器可

 

温度传感器可以用来测量器件周围的温度(TA)。
温度传感器在内部和ADCx_IN16输入通道相连接,此通道把传感器输出的电压转换成数字值。
温度传感器模拟输入推荐采样时间是17.1μs。
当没有被使用时,传感器可以置于关电模式。
注意:必须设置TSVREFE位激活内部通道:ADCx_IN16(温度传感器)和ADCx_IN17(VREFINT)的转换。

主要特征
●支持的温度范围:-40到125度
●精确度:+/- 1.5° C

读温度
为使用传感器:
1.选择ADCx_IN16输入通道
2.选择采样时间大于2.2 μs
3.设置ADC控制寄存器2(ADC_CR2)的TSVREFE位,以唤醒关电模式下的温度传感器
4.通过设置ADON位启动ADC转换(或用外部触发)
5.读ADC数据寄存器上的VSENSE 数据结果
6.利用下列公式得出温度
温度(°C) = {(V25 - VSENSE) / Avg_Slope} + 25
这里:
V25 = VSENSE
在25°C时的数值
Avg_Slope = 温度与VSENSE曲线的平均斜率(单位为mV/° C 或 μV/ °C)
参考电气特性章节中V25 和Avg_Slope的实际值。
注意:传感器从关电模式唤醒后到可以输出正确水平的VSENSE前,有一个建立时间。ADC在上电后也
有一个建立时间,为了缩短延时,应该同时设置ADON和TSVREFE位。

以下部分来自wolaiye945的博客:

首先将数据进行比例转化,可以使用微软系统自带的计算器,根据参考电压3.3V在12位AD转换对应最大值0xFFF可知,1.42V对应0x6E2(1762D),而斜率每摄氏度4.35mV对应每摄氏度0x05,故此时公式可以修正为:温度(°C) = {(0x6E2- VSENSE) / 5} + 25

综上所述,芯片的温度已经可以通过计算存入变量,在经过相应的位处理就可以显示在LCD上。
本人使用的代码仅供参考,如下:
//变量声明部分略去
mytemp = (0x6E2- ADC_ConvertedValue_Bak) / 0x05 + 25;

for (v2=3;v2;v2--)
{
v1=mytemp;
mytemp/=10;
LCD_DrawChar(3,(v2-1)<<3,HexValueOffset[v1]);
}

最后,还需要提示一下,在使用的时候不要忘记唤醒温度传感器(默认处于休眠状态),也就是需要设置ADC控制寄存器2(ADC_CR2)的TSVREFE位为1,否则会得到一个几乎为零的极小AD值,通过公式得到一个远远超出范围的温度值,显然是错误的。
给控制寄存器置位可以使用直接置位的方法,但为了增强程序的模块化程度,我建议使用STM32预定义的函数ADC_TempSensorVrefintCmd(ENABLE);
在初始化ADC后和开始转换前的代码段中调用该函数,即可唤醒温度传感器的检测。

以下来自泡桐树

 

ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;//独立模式CR1
ADC_InitStructure.ADC_ScanConvMode = ENABLE;//扫描模式使能
ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;//连续转换模式使能
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;//启动转换的外部事件--无CR2
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;//转换后的数据右对齐
ADC_InitStructure.ADC_NbrOfChannel = 2;//转换的通道数为2
ADC_Init(ADC1, &ADC_InitStructure);

//内部温度传感器添加这一句

ADC_TempSensorVrefintCmd(ENABLE);


ADC_RegularChannelConfig(ADC1,ADC_Channel_11, 1, ADC_SampleTime_55Cycles5);//通道11采样时间


//################ Channel 11(电位器)###### 内部温度传感器改为 Channel 16 ###################
ADC_RegularChannelConfig(ADC1,ADC_Channel_16, 2, ADC_SampleTime_239Cycles5);



ADC_Cmd(ADC1, ENABLE);

 

显示和转换公式如下

u16 GetVolt(u16 advalue)
{
return (u16)(advalue*330/4096);
}

u16 GetTemp(u16 advalue)
{
u32 Vtemp_sensor;
s32 Current_Temp;

Vtemp_sensor=advalue*330/4096;
Current_Temp=(s32)(143-Vtemp_sensor)*10000/43+2500;
return (s16)Current_Temp;
}

初始化ADC,DMA后,循环读取AD_Value[2]来获取计数值,进而进行转换。

 

 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭