[嵌入式]stm32内部温度传感器实验

2023-05-16

实验概述

文章目录

  • 实验概述
    • 一.概述
    • 二.实验平台
      • (1)硬件平台ALIENTEK MiniSTM32 开发板
      • (2)软件平台
    • 三.实验过程
      • 1.STM32 内部温度传感器简介
      • 2.硬件设计
      • 3.软件设计
    • 四.实现

一.概述

内部ADC及温度传感器采集MCU内部电压及温度:

MCU内部ADC及传感器获取电压及温度值使用数码管或LED点阵或串口等显示获取到的电压及温度值

二.实验平台

(1)硬件平台ALIENTEK MiniSTM32 开发板

在这里插入图片描述
在这里插入图片描述

(2)软件平台

MDK5
MDK 源自德国的 KEIL 公司,是 RealView MDK 的简称。在全球 MDK 被超过 10 万的嵌 入式开发工程师使用。目前最新版本为:MDK5.21A,该版本使用 uVision5 IDE 集成开发环境, 是目前针对 ARM 处理器,尤其是 Cortex M 内核处理器的最佳开发工具。
下载软件flymcu
在这里插入图片描述
在这里插入图片描述

三.实验过程

1.STM32 内部温度传感器简介

在这里插入图片描述
STM32 有一个内部的温度传感器,可以用来测量 CPU 及周围的温度(TA)。该温度传感器在内部和 ADCx_IN16 输入通道相连接,此通道把传感器输出的电压转换成数字值。温度传感 器模拟输入推荐采样时间是 17.1μs。STM32 的内部温度传感器支持的温度范围为:-40~125 度,精度为±1.5℃左右
STM32 内部温度传感器的使用,只要设置一下内部 ADC,并激活其内部通道就差不多了。关于 ADC 的设置,。 第一个地方,我们要使用 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/℃)。
利用以上公式,我们就可以方便的计算出当前温度传感器的温度了。
传感器设置步骤:
选择ADC_IN16输入通道。
设置采样时间大于17.1us
设置ADC_CR2的TSVREFE位,打开内部温度传感器
设置ADON位启动转换
读取ADC结果
计算。

2.硬件设计

本实验用到的硬件资源有:
1) 指示灯 DS0
2) TFTLCD 模块
3) ADC
4) 内部温度传感器

3.软件设计

部分代码::u16 adcx;
	float temp;
	float temperate;	 
  	Stm32_Clock_Init(9);	//Ï
	uart_init(72,9600);	 	//´
	delay_init(72);	   	 	//
	LED_Init();		  		//
 	LCD_Init();			   	//			 	
 	Adc_Init();		  		//	    
	POINT_COLOR=RED;//
	LCD_ShowString(60,50,200,16,16,"Mini STM32");	
	LCD_ShowString(60,70,200,16,16,"Temperature TEST");	
	LCD_ShowString(60,90,200,16,16,"ATOM@ALIENTEK");
	LCD_ShowString(60,110,200,16,16,"2014/3/9");	
	//ÏÔʾÌáʾÐÅÏ¢											      
	POINT_COLOR=BLUE;//
	LCD_ShowString(60,130,200,16,16,"TEMP_VAL:");	      
	LCD_ShowString(60,150,200,16,16,"TEMP_VOL:0.000V");	      
	LCD_ShowString(60,170,200,16,16,"TEMPERATE:00.00C");	  
	while(1)
	{
		adcx=Get_Adc_Average(ADC_CH_TEMP,10);
		LCD_ShowxNum(132,130,adcx,4,16,0);//ÏÔʾADCµÄÖµ
		temp=(float)adcx*(3.3/4096);
		temperate=temp;//
		adcx=temp;
		LCD_ShowxNum(132,150,adcx,1,16,0);     		//Ï
		temp-=(u8)temp;				    			//	  
		LCD_ShowxNum(148,150,temp*1000,3,16,0X80);	//
 		temperate=(1.43-temperate)/0.0043+25;		// 
		LCD_ShowxNum(140,170,(u8)temperate,2,16,0); //
		temperate-=(u8)temperate;	  
		LCD_ShowxNum(164,170,temperate*100,2,16,0X80);//
		LED0=!LED0;
		delay_ms(250);

四.实现

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[嵌入式]stm32内部温度传感器实验 的相关文章

随机推荐

  • ubuntu服务器通过iso进行系统升级

    ubuntu服务器通过iso进行系统升级 1 添加iso文件源 xff1a sudo mount t iso9660 o loop ubuntu 18 04 6 live server amd64 iso media cdrom 挂在镜像文
  • ROS学习(1):gazebo保存加载世界

    roslaunch文件分析 xff08 古月居大神提供 xff0c 来源于ROS机器人开发实践视频 xff09 96 view mbot gazebo play ground launch lt launch gt lt 设置launch文
  • connect to host port 22: Connection refused

    Windows 使用SSH连接树莓派 xff1a 提示 xff1a 这里简述项目相关背景 xff1a 今天练习发现使用MobaXterm可以正常连接到树莓派 xff0c 但是使用windows终端就不可以连接 xff0c 显示connect
  • 8本游戏开发书籍推荐

    很多刚刚接触游戏开发的朋友经常问我 xff1a 如何开始学习游戏开发 xff1f 我从事游戏开发行业很多年了 xff0c 坦率地讲 xff0c 开发游戏充满挑战性 xff0c 需要开发人员具备大量的技能与积极的创新精神 希望这篇小文能帮助朋
  • windows通过SSH控制树莓派

    windows通过SSH控制树莓派 xff1a 因学习需要在windows系统下对树莓派进行SSH连接 xff0c 包括SSH密钥生成 密钥传输及公钥保存等 Windows下密钥的产生 在Windows下使用 ssh keygen生成公钥和
  • raspistill command not found

    raspistill command not found xff1a 提示 xff1a 这里简述项目相关背景 xff1a 今天使用树莓派来调用摄像头 xff0c 摄像头为树莓派官方摄像头 xff0c 在升级系统和配置后发现使用raspist
  • 树莓派I2C基本用法

    文章目录 一 I2C二 I2C配置1 I2C02 I2C13 I2C34 I2C45 I2C56 I2C6 三 I2C工具总结 一 I2C 树莓派默认打开I2C功能 xff0c 如果I2C没有打开 xff0c 可以使用命令sudo rasp
  • 树莓派RTC

    文章目录 一 RTC准备二 RTC芯片三 为什么使用hwclock显示找不到硬件总结 一 RTC准备 在使能树莓派RTC之前 xff0c 需要先为树莓派RTC模块安装电池 xff08 一般为纽扣电池 xff09 二 RTC芯片 树莓派4B使
  • 树莓派debian11更换国内源

    更换国内源 修改文件 etc apt sources list deb https mirrors tuna tsinghua edu cn debian bullseye main contrib non free span class
  • cpptools占用率过高

    问题描述 使用vscode发现在系统中cpptools CPU占用率达到百分百 电脑发生严重卡顿 解决方案 xff1a 此问题的出现是因为使用了C C 43 43 这个插件 xff0c 如果直接禁用此插件就可以解决这个问题 如果希望使用这个
  • ROS话题的定义和使用

    ROS话题的定义和使用 自定义话题消息 自定义话题消息主要包括以下步骤 xff1a 定义msg文件在package xml中添加功能中依赖在CMakeList txt中添加编译规则编译生成语言相关文件 编写 msg文件 进入要定义 msg文
  • 如何在VScode中利用git来下载GitHub上的源码

    一 Git安装与下载 官网下载地址 xff1a Git Downloads https git scm com downloads xff08 注意安装时选择的默认编辑器选择vscode xff0c 然后修改安装路径其他默认下一步就ok了
  • PhpStorm 2018 安装及破解方法

    https blog csdn net u012278016 article details 81772566
  • mitmproxy笔记

    mitmproxy证书在http mitm it下载 或者在 mitmproxy ubuntu安装mitmproxy xff0e 可以到官网下载二进制文件 xff0e pip安装出了问题 xff0e Firfox和Chrome有各自独立的证
  • [Extensive Reading]目标检测(object detection)系列(十六)YOLOv4:平衡速度与精度

    简介 YOLOv4是YOLO之父Joseph Redmon宣布退出计算机视觉的研究之后推出的YOLO系列算法 xff0c 其作者Alexey Bochkovskiy也参与了YOLO之前系列算法 xff0c YOLOV4 Optimal Sp
  • 【Python】Python函数名后的->(横线和大于号)代表什么?

    目录 参考例子优点 参考 本文主要参考以下链接 xff1a 在def定义函数的时候 64 和 gt 代表什么 python中 gt 是什么意思python 定义函数 def 后面的 xff1e xff0c xff1a 表示的含义 例子 如下
  • Keil软件中使用“Go To Definition Of ”时提示“source browser:‘xxxx‘undefined definition/reference”

    在编写DMA的初始化函数时 xff0c 为了节约时间 xff0c 直接用了之前的模板 xff0c 但是在用DMA DeInit 函数时 xff0c 当右键点击此语句使用 Go To Definition Of 时 xff0c 该功能失效 x
  • 期末单片机复习题及答案(答案不保证全部正确95分)

    作者主页 xff1a 凉开水白菜 作者简介 xff1a 共同学习 xff0c 互相监督 xff0c 热于分享 xff0c 多加讨论 xff0c 一起进步 点赞 x1f44d 收藏 再看 xff0c 养成习惯 订阅的粉丝可通过PC端文末加我微
  • 带时间窗的车辆路径问题的多目标模因算法

    求解带时间窗车辆路径问题的多目标模因算法 1 问题描述和数学建模建立多目标模因算法 解的构造自适应局部搜索链 xff08 1 xff09 多方向局部搜索策略 xff08 2 xff09 强化的局部搜索链技术 xff08 3 xff09 自适
  • [嵌入式]stm32内部温度传感器实验

    实验概述 文章目录 实验概述一 概述二 实验平台 xff08 1 xff09 硬件平台ALIENTEK MiniSTM32 开发板 xff08 2 xff09 软件平台 三 实验过程1 STM32 内部温度传感器简介2 硬件设计3 软件设计