当前位置: 首页 > news >正文

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

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.lryc.cn/news/445727.html

相关文章:

  • 茶思屋直播|TinyEngine+AI:聚焦主航道,在实践中探索低代码技术黑土地
  • Ansible流程控制-条件_循环_错误处理_包含导入_块异常处理
  • Mybatis-为什么使用Mybatis,它存在哪些优点和缺点?
  • 银河麒麟高级服务器操作系统V10外接硬盘挂载指南
  • 免费制作证件照的小程序源码
  • 面经宝典【1】-拼多多
  • AI画图用到的网站与资源
  • C++——多线程编程(从入门到放弃)
  • 江协科技STM32学习- P14 示例程序(定时器定时中断和定时器外部时钟)
  • 2024年CSP-J认证 CCF信息学奥赛C++ 中小学初级组 第一轮真题-阅读程序题解析
  • Hive ROW_NUMBER() 简介
  • java是干什么的
  • AI与量化投资人才培养计划-连接职场 助力走在金融行业前沿
  • 《CUDA编程》2.CUDA中的线程组织
  • 学习篇 | Dockerized GitLab 安装使用(简单实操版)
  • Linux服务器磁盘扩容
  • Redis的一些数据类型(一)
  • 论文复现:考虑电网交互的风电、光伏与电池互补调度运行(MATLAB-Yalmip-Cplex全代码)
  • HTTP 协议介绍
  • 解决windows上VMware的ubuntu虚拟机不能拷贝和共享
  • Python+rust会是一个强大的组合吗?
  • 引用和指针的区别
  • 内容生态短缺,Rokid AR眼镜面临市场淘汰赛
  • 【论文阅读】StoryMaker | 更全面的人物一致性开源工作
  • 读构建可扩展分布式系统:方法与实践14流处理系统
  • C++第2课——取余运算符的应用、浮点型和字符型(含视频讲解)
  • SQL常用技巧总结
  • AJAX(简介以及一些用法)
  • 美畅物联丨GB/T 28181系列之TCP/UDP被动模式和TCP主动模式
  • 机器学习之实战篇——图像压缩(K-means聚类算法)