|
本人使用STM32L431RCT6单片机和STM32CUBEMX配置ADC进行内部温度采集,程序如下: / ADC1 init function / void MX_ADC1_Init(void) { / USER CODE BEGIN ADC1_Init 0 / / USER CODE END ADC1_Init 0 / ADC_ChannelConfTypeDef sConfig = {0}; / USER CODE BEGIN ADC1_Init 1 / / USER CODE END ADC1_Init 1 / /* Common config / hadc1.Instance = ADC1; hadc1.Init.ClockPrescaler = ADC_CLOCK_ASYNC_DIV16; hadc1.Init.Resolution = ADC_RESOLUTION_12B; hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT; hadc1.Init.ScanConvMode = ADC_SCAN_DISABLE; hadc1.Init.EOCSelection = ADC_EOC_SINGLE_CONV; hadc1.Init.LowPowerAutoWait = DISABLE; hadc1.Init.ContinuousConvMode = DISABLE; hadc1.Init.NbrOfConversion = 1; hadc1.Init.DiscontinuousConvMode = DISABLE; hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START; hadc1.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE; hadc1.Init.DMAContinuousRequests = DISABLE; hadc1.Init.Overrun = ADC_OVR_DATA_PRESERVED; hadc1.Init.OversamplingMode = DISABLE; 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_2CYCLES_5; sConfig.SingleDiff = ADC_SINGLE_ENDED; sConfig.OffsetNumber = ADC_OFFSET_NONE; sConfig.Offset = 0; if (HAL_ADC_ConfigChannel(&hadc1, &sConfig) != HAL_OK) { Error_Handler(); } / USER CODE BEGIN ADC1_Init 2 / / USER CODE END ADC1_Init 2 / } 采集AD程序如下: void GetInternalTemp(void) { HAL_ADC_Start(&hadc1); HAL_ADC_PollForConversion(&hadc1, 0xff); if(HAL_IS_BIT_SET(HAL_ADC_GetState(&hadc1), HAL_ADC_STATE_REG_EOC)) { ADC_Value = (float)HAL_ADC_GetValue(&hadc1);
} } 可以获取AD值,但是AD值随温度不变化,求助这是什么原因导致的 |
STM32F407VGT6 开发板Beak at address "0x0" with no debug information our outside
BootLoader 与 DFU 模式的区别
请问各位一下stm32L431rct6这款芯片,官方有没有停产?
调度器原子变量相关问题
运行到 WRITE_REG (FLASH->OPTKEYR, FLASH_OPTKEY1)跳转 HardFaultHandler
Discover Endless Word Challenges With Wordle Unlimited Every Day
STM32F417IG 单端外部时钟旁路HSE Bypass问题
STM32L4A6 SDMMC 无法使用 1.8V IO 驱动 microSD 卡
STM32L4P5xx 系统内 Bootloader:RAM3 能否用作栈指针内存?
STM32L496ZG 通过串口驱动 SIM7022 NB-IoT 模组无法注册网络
微信公众号
手机版
提醒几点:
1、针对温度传感器做测量时,校准时使用的参考电压与实际应用不一致时要做换算,换算成相同参考电压的数据后再做计算。
2、采样时间要够。
正常来讲应该是可以观察到温度的影响的。
下面文章内容是以STM32G4系列的内部AD通道讨论的,你完全可以参考。
基于STM32片内信号的ADC应用演示
需要注意一下,由于外壳的存在,对外部的温度变化不敏感。
所以通常用来测内部结温。
有没有STM32L431RCT6中文数据手册发一份