你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 1421|回复: 2

【连载】【ALIENTEK 战舰STM32开发板】STM32开发指南--第二十三章 内部温度传感器实验

[复制链接]

50

主题

7

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2013-3-11 22:13:48 | 显示全部楼层 |阅读模式
第二十三章 内部温度传感器实验

     本章我们将向大家介绍STM32的内部温度传感器。在本章中,我们将使用STM32的内部温度传感器来读取温度值,并在TFTLCD模块上显示出来。本章分为如下几个部分:

23.1 STM32 内部温度传感器简介

23.2 硬件设计

23.3 软件设计

23.4 下载验证  


23.1 STM32 内部温度传感器简介
     STM32有一个内部的温度传感器,可以用来测量CPU及周围的温度(TA)。该温度传感器在内部和ADCx_IN16输入通道相连接,此通道把传感器输出的电压转换成数字值。温度传感器模拟输入推荐采样时间是17.1μs。 STM32的内部温度传感器支持的温度范围为:-40~125度。精度比较差,为±1.5℃左右。

     STM32内部温度传感器的使用很简单,只要设置一下内部ADC,并激活其内部通道就差不多了。关于ADC的设置,我们在第十八章已经进行了详细的介绍,这里就不再多说。接下来我们介绍一下和温度传感器设置相关的2个地方。

第一个地方,我们要使用STM32的内部温度传感器,必须先激活ADC的内部通道,这里通过ADC_CR2的AWDEN位(bit23)设置。设置该位为1则启用内部温度传感器。

第二个地方,STM32的内部温度传感器固定的连接在ADC的通道16上,所以,我们在设置好ADC之后只要读取通道16的值,就是温度传感器返回来的电压值了。根据这个值,我们就可以计算出当前温度。计算公式如下:

                    T(℃)={(V25-Vsense)/Avg_Slope}+25

上式中:

       V25=Vsense在25度时的数值(典型值为:1.43)。

       Avg_Slope=温度与Vsense曲线的平均斜率(单位为mv/℃或uv/℃)(典型值为4.3Mv/℃)。

    利用以上公式,我们就可以方便的计算出当前温度传感器的温度了。

现在,我们就可以总结一下STM32内部温度传感器使用的步骤了,如下:

1)设置ADC,并开启ADC_CR2的AWDEN位。

      关于如何设置ADC,上一节已经介绍了,我们采用与上一节一样的设置,这里我们只要增加使能AWDEN位这一句就可以了。

2)读取通道16的AD值,计算结果。

      在设置完之后,我们就可以读取温度传感器的电压值了,得到该值就可以用上面的公式计算温度值了。

23.2 硬件设计
本实验用到的硬件资源有:

1)  指示灯DS0

2)  TFTLCD模块

3)  ADC

4)  内部温度传感器

前三个之前均有介绍,而内部温度传感器也是在STM32内部,不需要外部设置,我们只需要软件设置就OK了。


23.3 软件设计
打开上一章的工程,打开adc.c,修改Adc_Init函数代码如下:

void  Adc_Init(void)

{   

       //先初始化IO口


      RCC->APB2ENR|=1APB2ENR|=1

实验18 内部温度传感器实验.rar

下载

110.64 KB, 下载次数: 10, 下载积分: ST金币 -1

《STM32开发指南》第二十三章 内部温度传感器实验.rar

下载

481.42 KB, 下载次数: 10, 下载积分: ST金币 -1

回复

使用道具 举报

10

主题

379

回帖

0

蝴蝶豆

高级会员

最后登录
1970-1-1
发表于 2015-6-8 22:19:41 | 显示全部楼层
回复 支持 反对

使用道具 举报

64

主题

1074

回帖

140

蝴蝶豆

论坛元老

最后登录
2020-12-3
发表于 2015-6-9 09:56:19 | 显示全部楼层
好东西,呵呵
回复 支持 反对

使用道具 举报

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版