32. 内部温度传感器实验
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
普中STM32开发板带您进源自文库ARM世界
(1)要使用 STM32F1 的内部温度传感器,必须先激活 ADC 的内部通道 ,这里通过 ADC_CCR 的 TSVREFE 位( bit23)设置。设置该位为 1 则 启用内部温度传感器,否则关闭内部温度传感器。 (2)STM32F103ZET6的内部温度传感器固定的连接在 ADC1_IN16上,所 以,我们在设置好 ADC1 之后只要读取通道 16 的AD值,就知道温度传 感器返回来的电压值了。根据这个值,我们就可以计算出当前温度。计 算公式如下: T(℃) ={( V25 - Vsense) /Avg_Slope}+25 公式中: V25=Vsense 在 25 度时的数值(典型值为:1.43V)。 Avg_Slope=温度与 Vsense 曲线的平均斜率(单位为 mv/℃或 uv/℃) (典型值为4.3mV/℃)。 通过上面公式,我们就能非常方便的计算出当前内部温度传感器测试的 温度。
普中STM32开发板带您进入ARM世界
3.硬件电路
本实验使用到硬件资源如下: (1)D1指示灯 (2)串口1 (3)内部温度传感器 D1指示灯、串口1电路在前面章节都介绍过,这里就不多说,至于内 部温度传感器它属于STM32F1芯片内部的资源,连接的是ADC1_IN16通道 。
普中STM32开发板带您进入ARM世界
普中STM32开发板带您进入ARM世界
内部温度传感器实验
普中STM32开发板带您进入ARM世界
本讲主要内容
1.STM32F1内部温度传感器介绍 2.内部温度传感器配置步骤 3.硬件电路 4.编写内部温度传感器控制程序
普中STM32开发板带您进入ARM世界
1.STM32F1内部温度传感器介绍
1.1 STM32F1内部温度传感器简介 STM32F1内部含有一个温度传感器,可用来测量 CPU 及周围的温度 (TA)。此温度传感器与ADC1内部输入通道相连接,如下图所示。它 连接在ADC1_IN16上。ADC1可以将传感器输出的电压转换成数字值。 STM32F1的内部温度传感器支持的温度范围为:-40~125 度,精度为 ±1.5℃左右。
普中STM32开发板带您进入ARM世界
普中STM32开发板带您进入ARM世界
STM32F1 内部温度传感器的使用很简单,只要初始化下ADC1_IN16通 道,并激活其内部温度传感器通道就差不多了。关于 ADC 的初始化,我 们在上一节已经进行了详细的介绍,这里就不多说。接下来我们介绍一 下和温度传感器设置相关的 2 个地方。
4.编写内部温度传感器控制程序
本章所要实现的功能是:通过芯片内部温度传感器读取温度,并将读 取的温度数据打印出去,D1指示灯闪烁提示系统正常运行。程序框架如 下: (1)初始化内部温度传感器(初始化ADC1_IN16,开启温度传感器) (2)编写温度读取函数 (3)编写主函数
普中STM32开发板带您进入ARM世界
2.内部温度传感器配置步骤
接下来我们介绍下如何使用库函数对内部温度传感器进行配置。这个 也是在编写程序中必须要了解的。具体步骤如下:(ADC相关库函数在 stm32f10x_adc.c和stm32f10x_adc.h文件中) (1)初始化ADC1_IN16相关参数,开启内度温度传感器 ADC1_IN16的初始化步骤与上一章介绍AD模数转换实验一样,这里我们只 需要开启内部温度传感器即可,调用的库函数为: ADC_TempSensorVrefintCmd(ENABLE);//打开ADC内部温度传感器 (2)读取ADC1_IN16 AD值,将其转换为对应温度 上一步配置好后,我们就可以读取温度传感器的电压值,根据温度计算 公式,可以求出对应电压值的温度,具体方法与上一章一样。