自学内容网 自学内容网

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;
  //mv
  ADC_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、温度采集偏差太大

解决方法

采用更稳定的电源供电

参考

【【小蜜蜂笔记】基于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=


原文地址:https://blog.csdn.net/qq_35629563/article/details/142412643

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!