
本人使用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值随温度不变化,求助这是什么原因导致的 |
小白求助!STM32L476使用VREF、VBAT采集模块电压,计算出的VBAT值偏大
STM32L031G6U6芯片,使用Flash模拟EEPROM功能,同数据写入不同地址,读取对比不一样,这是为什么?
请教专家,STM8L052的GPIO口做输入检测,为什么不能反应管脚实际电压变化?
各位大佬们多提提宝贵建议定位根本原因,跪谢。STM32L452 在未知情况下打开了读保护RDP?MCU无法运行,只有解除读保护后重新烧录固件
请问如何在下载程序时保护flash中的用户数据不被覆盖?
STM32G474VET6如何配置HRTIM的中心对齐模式
嘉立创和淘宝买的STM32L496芯片丝印不一样,能告诉我这两个丝印有什么区别吗?
stm32g431rbt怎么显示汉字
stm32h725
STM32L433VCT6 进入STOP模式2之后,功耗依然和正常运行模式没有差别,请教大神