STM32G474内部温度传感器的使用

news2024/9/19 9:49:32

目录

概述

1 认识STM32G474内部温度传感器

1.1  温度传感器概述

1.2 温度传感器实现原理

1.3 读取温度方法

1.4  ADC模块上温度sensor的位置框图

2 STM32Cube创建项目

2.1 配置参数

2.2 STM32Cube生成的软件架构

3 温度数据算法实现

3.1 算法介绍

3.2 源代码 


概述

本文主要介绍STM32G474内部温度传感器的使用的使用方法,包括实现原理,STM32Cube配置参数,已经算法实现。

1 认识STM32G474内部温度传感器

1.1  温度传感器概述

温度传感器(TS)产生随温度线性变化的电压VTS。温度传感器内部连接到ADC输入通道,用于将传感器输出电压转换为数字值。传感器具有良好的线性度,但必须进行校准才能获得良好的整体性能温度测量的准确性。随着温度传感器偏移量的变化由于工艺变化,芯片之间未校准的内部温度传感器适用于仅检测温度变化的应用。

为了提高温度传感器测量的准确性,每个设备都温度传感器出厂校准数据由ST单独校准由ST存储在系统存储区中,以只读模式访问。

温度传感器校准值

1.2 温度传感器实现原理

温度传感器可用于测量设备的结温(Tj)。温度传感器内部连接到所使用的ADC输入通道将传感器输出电压转换为数字值。不使用时,传感器可以进入断电模式。它支持-40至125°C的温度范围。

温度传感器输出电压随温度线性变化。对此的抵消由于工艺变化(从一个芯片到另一个芯片高达45°C),线路因芯片而异。

未校准的内部温度传感器更适合检测温度变化而不是绝对温度。为了提高温度传感器测量值、校值分别存储在系统内存中ST在生产过程中生产的设备。

在制造过程中,温度传感器的校准数据和内部电压基准存储在系统存储区中。用户应用程序可以然后读取它们并使用它们来提高温度传感器或内部参考(更多信息请参阅数据表)。


温度传感器内部连接到ADC输入通道,用于将传感器的输出电压转换为数字值。参考电气特性转换时应用的采样时间值的设备数据表部分内部温度传感器。

1.3 读取温度方法

1)选择连接到VTS的ADC输入通道。

2)具有适当采样时间的程序(请参阅设备数据表)。

3)在ADCx_CCR寄存器中设置VSENSESEL位以唤醒温度传感器从断电模式。

4)启动ADC转换。

5)读取ADC数据寄存器中的VTS数据。

6)使用以下公式计算实际温度:

参数介绍

TS_CAL2是在TS_CAL2_TEMP处获取的温度传感器校准值。
•TS_CAL1是在TS_CAL1_TEMP处获取的温度传感器校准值。
•TS_DATA是ADC转换的实际温度传感器输出值。
  有关TS_CAL1和TS_CAL2的更多信息,请参阅设备数据表校准点。

注意点:

传感器在从断电模式唤醒后有一段启动时间,然后才能输出VTS在正确的水平。ADC在通电后也有启动时间,因此可以最大限度地减少ADEN和VSENSESEL位应同时设置。对于在相同VREF+电压下进行的TS_DATA测量,给出了上述公式作为TS_CAL1/TS_CAL2值。如果VREF+不同,则必须调整公式。


例如: 

如果VREF+=3.3V并且在VREF+=3.0V下获取TS_CAL数据,则TS_data必须替换为TS_DATA x(3.3/3.0)

1.4  ADC模块上温度sensor的位置框图

根据框图可知,STM32G474内部温度sensor连接在ADC5模块上。

2 STM32Cube创建项目

2.1 配置参数

根据框图可得STM32G474的温度传感器挂载在ADC5模块上,在STM32Cube上使能该端口

配分配系数和采样模式

完成以上配置后就可以生成项目

2.2 STM32Cube生成的软件架构

代码205行:选择数据转换通道为温度传感器Sensor

3 温度数据算法实现

3.1 算法介绍

代码42行: 启动ADC数据转换功能

代码43行:获取当前ADC转换的状态

代码46行: 获取ADC的值

代码47~48行:读取标定值

代码49行: 温度数据转换

代码51行: 停止数据转换

3.2 源代码 

typedef struct
{
    float tempValue;
    uint8_t ready;      //0x01: data is ok,
                        //others: data is not ready 
} Stru_stTemp;



Stru_stTemp stru_stTemp;
/*
    It support the temperature range –40 to 125 °C

    To use the sensor:
    1. Select the ADC input channels that is connected to VTS.
    2. Program with the appropriate sampling time (refer to electrical characteristics section of
        the device datasheet).
    3. Set the VSENSESEL bit in the ADCx_CCR register to wake up the temperature sensor
       from power-down mode.
    4. Start the ADC conversion.
    5. Read the resulting VTS data in the ADC data register.
    6. Calculate the actual temperature using the following formula:
*/

int get_stInternelTemp( Stru_stTemp *pValue )
{
    uint32_t value;
    float tempvalue;
    uint16_t TS_CAL1;
    uint16_t TS_CAL2;
    HAL_StatusTypeDef status;
 
    HAL_ADC_Start( &hadc5 );
    status = HAL_ADC_PollForConversion( &hadc5, 100);
    if( status == HAL_OK) 
    {
       value = HAL_ADC_GetValue( &hadc5 );
       TS_CAL1 = *(__IO uint16_t *)(0x1FFF75A8);
       TS_CAL2 = *(__IO uint16_t *)(0x1FFF75CA);
       tempvalue = (110 - 30) * (value*1.1 - TS_CAL1)/ (TS_CAL2 - TS_CAL1) + 30;
      //  printf(" get conv_value: %04f \r\n", conv_value);
       HAL_ADC_Stop( &hadc5 );
       pValue->ready = 0x01;
       pValue->tempValue = tempvalue;
       return 0;
    }
    else
    {
       HAL_ADC_Stop( &hadc5 );
    }
    
    return -1;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2114665.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【H2O2|全栈】关于HTML(1)认识HTML

HTML相关知识 目录 前言 准备工作 WEB前端是什么? HTML是什么? 如何运行HTML文件? 标签 概念 分类 双标签和单标签 行内标签和块标签 HTML文档结构 预告和回顾 UI设计相关 Markdown | Md文档相关 项目合作管理相关 后话 前…

顶踩Emlog插件源码

源码介绍 顶踩Emlog插件源码 前些天看到小刀娱乐网的文章页面有了一些变化,那就是增加了一个有价值/无价值的顶踩按钮。 样式也是非常的好看 再加上两个表情包是非常的有趣。 写到了Emlog系统,效果如上图。 如何使用: 需要在echo_log.…

Python 算法交易实验88 QTV200日常推进-关于继续前进的思考

说明 念念不忘,必有回响 最初的时候,完全不了解架构方面的东西。后来决定要搞好这一块的时候,也就是不断的琢磨,到现在4年的时间,改变已经非常大了。现在习以为常的,都是当初梦寐以求的,而且在可见的未来 &…

论文精读-Supervised Raw Video Denoising with a Benchmark Dataset on Dynamic Scenes

论文精读-Supervised Raw Video Denoising with a Benchmark Dataset on Dynamic Scenes 优势 1、构建了一个用于监督原始视频去噪的基准数据集。为了多次捕捉瞬间,我们手动为对象s创建运动。在高ISO模式下捕获每一时刻的噪声帧,并通过对多个噪声帧进行…

龙芯+FreeRTOS+LVGL实战笔记(新)——05部署主按钮

本专栏是笔者另一个专栏《龙芯+RT-Thread+LVGL实战笔记》的姊妹篇,主要的区别在于实时操作系统的不同,章节的安排和任务的推进保持一致,并对源码做了改进和优化,各位可以先到本人主页下去浏览另一专栏的博客列表(目前已撰写36篇,图1所示),再决定是否订阅。此外,也可以…

行空板上YOLO和Mediapipe图片物体检测的测试

Introduction 经过前面三篇教程帖子(yolov8n在行空板上的运行(中文),yolov10n在行空板上的运行(中文),Mediapipe在行空板上的运行(中文))的介绍,…

Node.js学习记录(一)

目录 一、文件读取 readFile 二、写入文件 writeFile 三、动态路径 __dirname:表示当前文件所处的目录、path.join 四、获取路径文件名 path.basename 五、提取某文件中的css、JS、html 六、http 七、启动创建web服务器 服务器响应 八、将资源请求的 url 地址映射为文…

idea插件开发的第二天-写一个时间查看器

介绍 Demo说明 本文基于maven项目开发,idea版本为2022.3以上,jdk为1.8本文在Tools插件之上进行开发 Tools插件说明 Tools插件是一个Idea插件,此插件提供统一Spi规范,极大的降低了idea插件的开发难度,并提供开发者模块,可以极大的为开发者开发此插件提供便利Tools插件安装需…

Spark的Web界面

http://localhost:4040/jobs/ 在顶部导航栏上,可以点击以下选项来查看不同类型的Spark应用信息: Jobs - 此视图将列出所有已提交的作业,并提供每个作业的详细信息,如作业ID、名称、开始时间、结束时间等。Stages - 此视图可以查…

新160个crackme - 050-daxxor

运行分析 需要破解Name和Serial PE分析 C程序,32位,无壳 静态分析&动态调试 ida找到关键字符串,双击进入函数 通过静态分析发现:1、Name通过计算得到Name12、对Name1第3、5、6分别插入byte_401290、byte_401290、word_401292&…

Weibull概率分布纸(EXCEL VBA实现)

在学习Weibull分布理论的时候,希望有一张Weibull概率纸,用来学习图解法。但是在度娘上没有找到的Weibull概率纸的电子版。在书上看到的Weibull概率纸,只能复印下来使用。于是萌生了自己制作Weibull概率纸的想法,帮助自己更好地学习…

综合案例-数据可视化-折线图

一、json数据格式 1.1 json数据格式的定义与功能 json是一种轻量级的数据交互格式,可以按照json指定的格式去组织和封装数据,json数据格式本质上是一个带有特定格式的字符串。 功能:json就是一种在各个编程语言中流通的数据格式&#xff0…

全倒装COB超微小间距LED显示屏的工艺技术,相比SMD小间距有何优势

全倒装COB(Chip On Board)超微小间距LED显示屏,在工艺技术上的革新,相较于传统的SMD(Surface Mount Device)小间距LED显示屏,展现出了多方面的显著优势。 首先,全倒装技术极大地提升…

JAVAEE初阶第七节(下)——物理原理与TCP_IP

系列文章目录 JAVAEE初阶第七节(下)——物理原理与TCP_IP 文章目录 系列文章目录JAVAEE初阶第七节(下)——物理原理与TCP_IP 一.网络层重点协议 1. IP协议如何管理地址 1.1 解决IP地址不够用的问题 1.2 网段划分 1.3 特殊的IP…

深度剖析AI情感陪伴类产品及典型应用 Character.ai

前段时间AI圈内C.AI的受够风波可谓是让大家都丈二摸不着头脑,连C.AI这种行业top应用都要找谋生方法了!投资人摸不着头脑,用户们更摸不着头脑。在这之前断断续续玩了一下这款产品,这次也是乘着这个风波,除了了解一下为什…

【数据库】MySQL表的Updata(更新)和Delete(删除)操作

目录 1.Update 案例1:将孙悟空同学的数学成绩变更为 80 分 案例2:将曹孟德同学的数学成绩变更为 60 分,语文成绩变更为 70 分 案例3:将总成绩倒数前三的 3 位同学的数学成绩加上 30 分 案例4:将所有同学的语文成绩…

计算机网络与Internet应用

一、计算机网络 1.计算机网络的定义 网络定义:计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享…

『功能项目』武器的切换实例【34】

本章项目成果展示 我们打开上一篇33战士的A键连击的项目, 本章要做的事情是按键盘E键切换职业时切换手中的武器 首先在资源商店下载免费的武器模型 创建一个空物体 命名为WeaponPos 将武器预制体拖拽至WeaponPos (注意调整空物体位置就可以后续文章会更…

CSP-J 之C++常用英文缩写

文章目录 C常用英文缩写前言常用缩写解析C 基础缩写输入输出相关控制台 命名与类型常用函数在线测评相关 总结 C常用英文缩写 前言 在编程比赛和日常开发中,C是一门广泛使用的编程语言,许多英文缩写贯穿其中。了解这些缩写不仅有助于提高编程效率&…

XGBoost算法-上

简单解释一下xgboost这个模型 xg是一个非常强大,非常受欢迎的机器学习模型,其中最大的特色就是boosting(改进、推进),怎么改进呢?就是xgboost这个算法,它会先建立一颗简单的决策树,…