ST意法半导体
登录
直播中
李娟
7年用户
1375经验值
私信
关注
[问答]
STM32F373 ADC内部通道仅测量0xFFF怎么解决?
开启该帖子的消息推送
adc
我正在使用
STM32
F373CCT 开发一个项目。我需要使用内部 ADC 温度传感器补偿从 SDADC 信号读取的信号。
问题是我只从内部温度传感器和参考电压通道获得值 0xFFF。
我已经检查了 ADC 配置位 ADC_CR2_TSVREFE。它被设置并且在 ADC 打开之前被设置。
我还使用 DVM 检查了 VDDA 和 VSSA 引脚。它们相应地连接到 GND、3.3V VCC。
此外,ADC 以 10MHz 运行,239.5 个周期的采样时间应远大于内部温度传感器所需的 17.1µs 采样时间。
项目的更多信息:
我将 SDADC 与内部 1.8V 参考一起使用,但该参考应与正常的 ADC 电压分开。
我正在使用当前的 STMCubeIDE 1.5.0 和 STM32Cube MCU Package for STM32F3 in Version 1.11.2
我的简单测试代码:
int main(void)
{
/* MCU Configura
ti
on--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* Configure the system clock */
SystemClock_Config();
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_USART3_UART_Init();
MX_ADC1_Init();
/* Infinite loop */
while (1)
{
HAL_Delay(100);
HAL_ADC_Start(&hadc1);
HAL_Delay(100);
HAL_ADC_PollForConversion(&hadc1, 1000);
HAL_Delay(100);
uint32_t temp = HAL_ADC_GetValue(&hadc1);
}
}
对应的ADC.c:
/**
******************************************************************************
* File Name : ADC.c
* Description : This file provides code for the configuration
* of the ADC instances.
******************************************************************************
* @attention
*
*
© Copyright (c) 2020 STMicroelectronics.
* All rights reserved.
*
* This software component is licensed by ST under BSD 3-Clause license,
* the "License"; You may not use this file except in compliance with the
* License. You may obtain a copy of the License at:
* opensource.org/licenses/BSD-3-Clause
*
******************************************************************************
*/
/* Includes ------------------------------------------------------------------*/
#include "adc.h"
/* USER CODE BEGIN 0 */
/* USER CODE END 0 */
ADC_HandleTypeDef hadc1;
/* ADC1 init function */
void MX_ADC1_Init(void)
{
ADC_ChannelConfTypeDef sConfig = {0};
/** Common config
*/
hadc1.Instance = ADC1;
hadc1.Init.ScanConvMode = ADC_SCAN_DISABLE;
hadc1.Init.ContinuousConvMode = DISABLE;
hadc1.Init.DiscontinuousConvMode = DISABLE;
hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START;
hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT;
hadc1.Init.NbrOfConversion = 1;
if (HAL_ADC_Init(&hadc1) != HAL_OK)
{
Error_Handler();
}
/** Configure Regular Channel
*/
sConfig.Channel = ADC_CHANNEL_TEMPSENSOR;
sConfig.Rank = ADC_REGULAR_RANK_1;
sConfig.SamplingTime = ADC_SAMPLETIME_239CYCLES_5;
if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK)
{
Error_Handler();
}
}
void HAL_ADC_MspInit(ADC_HandleTypeDef* adcHandle)
{
if(adcHandle->Instance==ADC1)
{
/* USER CODE BEGIN ADC1_MspInit 0 */
/* USER CODE END ADC1_MspInit 0 */
/* ADC1 clock enable */
__HAL_RCC_ADC1_CLK_ENABLE();
/* USER CODE BEGIN ADC1_MspInit 1 */
/* USER CODE END ADC1_MspInit 1 */
}
}
void HAL_ADC_MspDeInit(ADC_HandleTypeDef* adcHandle)
{
if(adcHandle->Instance==ADC1)
{
/* USER CODE BEGIN ADC1_MspDeInit 0 */
/* USER CODE END ADC1_MspDeInit 0 */
/* Peripheral clock disable */
__HAL_RCC_ADC1_CLK_DISABLE();
/* USER CODE BEGIN ADC1_MspDeInit 1 */
/* USER CODE END ADC1_MspDeInit 1 */
}
}
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
如上所述,将通道更改为内部 ADC 参考测量不会改变测量结果。它始终测量 0xFFF。
有人可以帮助我,或者有一些线索,接下来要检查什么才能使用内部温度传感器吗?
回帖
(1)
汪芳
2023-1-9 10:47:16
对于内部 ADC 温度或参考电压测量有类似问题的任何人。
存在电压大于 VCC 或小于 VSS 的引脚。(2 个输入在没有适当电压电平的情况下连接。)
根据支持,当任何可能的 ADC 引脚(即使引脚未设置为备用功能)上存在电压时,就会发生这种情况。
将所有未使用的引脚设置为输入并激活下拉电阻(针对所有引脚上定义的电压电平)解决了问题。
对于内部 ADC 温度或参考电压测量有类似问题的任何人。
存在电压大于 VCC 或小于 VSS 的引脚。(2 个输入在没有适当电压电平的情况下连接。)
根据支持,当任何可能的 ADC 引脚(即使引脚未设置为备用功能)上存在电压时,就会发生这种情况。
将所有未使用的引脚设置为输入并激活下拉电阻(针对所有引脚上定义的电压电平)解决了问题。
举报
更多回帖
rotate(-90deg);
回复
相关问答
adc
请问有
STM32F373
I2C驱动与读写操作的例程吗?
2018-08-30
2710
STM32F
372/
373
可以做USB主机吗?
2022-12-26
267
stm32f373
怎么移植HAL库到103板子
2018-11-07
2274
STM32F373
施密特触发器迟滞问题求解
2023-01-04
208
STM32F373
每次开启PLL都不能正常运行是为什么?
2024-04-08
220
怎么得到参考电压Vref?
2023-06-27
1424
为什么要把SMRDATA的值减去
0xfff
?
2019-08-14
1407
STM32F373
无法通过DMA1_Channel3向DAC1_Channel1传数据
2018-11-19
3042
如何确定带隙电压和对应的
ADC
原始数据?
2023-06-25
357
关于M058LBN差分输入
ADC
转换问题
2023-08-24
232
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
英国威廉希尔公司网站
william hill官网 版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分