STM32CubeIDE | 使用HAL库的ADC读取内部传感器温度

news/2024/9/25 13:03:10/

1、cubemx配置

1.1、系统配置

1.2、GPIO配置

PB2设置为“GPIO_Output”

user label设置为“LED”

1.3、串口配置

模式选择为“Asynchronous”,其他默认

1.4、时钟树配置

全部保持默认

2、ADC配置

通道选择“Temperature Sensor Channel”,其他默认

3、程序

3.1、头文件

/* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 */
#include <string.h>
#include <stdio.h>
#include <math.h>
/* USER CODE END 0 */

3.2、变量定义

  /* USER CODE BEGIN 1 */uint8_t tx_data[100];uint32_t ADC_Value;float ADC_Voltage,ADC_Temperature;/* USER CODE END 1 */

3.3、ADC采集

  /* Infinite loop *//* USER CODE BEGIN WHILE */while (1){HAL_ADC_Start(&hadc1);HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_SET);if(HAL_ADC_PollForConversion(&hadc1, 20)==HAL_OK){ADC_Value=HAL_ADC_GetValue(&hadc1);
//		  ADC_Voltage=ADC_Value*3.3/4096;
//		  ADC_Temperature = ( ADC_Voltage - 0.76)/0.0025 + 25;//mvADC_Voltage=ADC_Value*3300/4096;ADC_Temperature = ( ADC_Voltage - 760)/2.5 + 25;sprintf((char *)tx_data,"采样值=%d,电压值=%fmV,温度值=%f℃",(int)ADC_Value,ADC_Voltage,ADC_Temperature);HAL_UART_Transmit(&huart1, tx_data, sizeof(tx_data), 1000);}HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_RESET);HAL_ADC_Stop(&hadc1);HAL_Delay(1500);/* USER CODE END WHILE */

 4、实验结果

5、bug处理记录

5.1、串口输出中文乱码

IDE在sprintf出提示

The float formatting support is not enabled, check your MCU Settings from "Project Properties > C/C++ Build > Settings > Tool Settings", or add manually "-u _printf_float" in linker flags.

 解决方法

菜单栏:Project→Properties

5.2、温度采集偏差太大

解决方法

采用更稳定的电源供电

jlink供电时VREF+引脚的测量结果

usb供电时VREF+引脚的测量结果

参考

【【小蜜蜂笔记】基于STM32CubeMX的嵌入式开发基础教程】 https://www.bilibili.com/video/BV1m7411H7oT/?p=8&share_source=copy_web&vd_source=f42320918d590ee8bddbeea3951af1af

HAL STM32F4内部温度读取+ADC阻塞式读取_hal 407 内部温度-CSDN博客icon-default.png?t=O83Ahttps://blog.csdn.net/weixin_42880082/article/details/137615388STM32CubeMX | HAL库的ADC多通道数据采集(轮训、DMA、DMA+TIM)、读取内部传感器温度_tim+adc+dma采集-CSDN博客icon-default.png?t=O83Ahttps://blog.csdn.net/qq153471503/article/details/108123019STM32F407内部温度偏差太大 (stmicroelectronics.cn)icon-default.png?t=O83Ahttps://shequ.stmicroelectronics.cn/forum.php?mod=viewthread&tid=605494&&extra=


http://www.ppmy.cn/news/1530290.html

相关文章

14年408-计算机网络

第一题&#xff1a; 解析&#xff1a;OSI体系结构 OSI由下至上依次是&#xff1a;物理层-网络链路层-网络层-运输层-会话层-表示层-应用层。 因此直接为会话层提供服务的是运输层。答案选C 第二题&#xff1a; 解析&#xff1a;数据链路层-交换机的自学习和帧转发 主机a1向交换…

中电金信:源启智能视觉分析系统~助力各行业破局升级,释放新质生产力

作为人工智能与计算机视觉的交叉范畴&#xff0c;智能视觉模仿人类视觉机能&#xff0c;来对各种形式的视觉输入予以处理、理解以及决策。当下&#xff0c;智能视觉已然发展为应用广泛、市场覆盖面大且形式多元的产业方向&#xff0c;获得了国家政策的强力支持。数字化时代搭台…

GIS开发之如何使用OpenLayers,Leaflet,Mapbox,Cesium,ArcGIS, Turf.js 与 D3.js

1、OpenLayers&#xff1a; 描述&#xff1a;OpenLayers是一个高性能、开源的JavaScript库&#xff0c;用于在Web上创建富有的地图应用。它支持多种地图数据源&#xff0c;包括从瓦片服务到矢量数据&#xff0c;并提供了大量的交互功能。特点&#xff1a;功能强大、灵活易用&a…

【Kubernetes】常见面试题汇总(三十五)

目录 87.简述 pod 中 readiness 和 liveness 的区别和各自应用场景。 特别说明&#xff1a; 题目 1-68 属于【Kubernetes】的常规概念题&#xff0c;即 “ 汇总&#xff08;一&#xff09;~&#xff08;二十二&#xff09;” 。 题目 69-113 属于【Kubernetes】的生产应…

OpenHarmony(鸿蒙南向开发)——标准系统方案之瑞芯微RK3566移植案例(下)

往期知识点记录&#xff1a; 鸿蒙&#xff08;HarmonyOS&#xff09;应用层开发&#xff08;北向&#xff09;知识点汇总 鸿蒙&#xff08;OpenHarmony&#xff09;南向开发保姆级知识点汇总~ OpenHarmony&#xff08;鸿蒙南向开发&#xff09;——轻量系统STM32F407芯片移植案…

Go 语言的垃圾回收机制

Go 语言的垃圾回收机制&#xff08;Garbage Collection&#xff0c;简称 GC&#xff09;1. 垃圾回收的工作原理2. 并发与回收3. 优点和缺点4. 调整和监控在 Go 语言中&#xff0c;垃圾回收&#xff08;GC&#xff09;机制主要通过“引用计数”和“可达性分析”来判断资源是否需…

Nature Communications|一种快速响应的智能可穿戴嗅觉接口(可穿戴电子/柔性电子/人机交互)

香港城市大学于欣格( Xinge Yu)、北京航空航天大学李宇航(Yuhang Li)、中国特种设备检验研究所赵召(Zhao Zhao)和东京大学Takao Someya团队,在《Nature Communications》上发布了一篇题为“Intelligent wearable olfactory interface for latency-free mixed reality and …

TCP: Textual-based Class-aware Prompt tuning for Visual-Language Model

文章汇总 存在的问题 原文&#xff1a;具有图像特定知识的图像条件提示符号在提升类嵌入分布方面的能力较差。 个人理解&#xff1a;单纯把"a photo of {class}"这种提示模版作为输入是不利于text encoder学习的 动机 在可学习的提示和每一类的文本知识之间建立…