From f41c72ded8c90adafe441700725d7ec3152d097c Mon Sep 17 00:00:00 2001 From: jeromecoutant Date: Fri, 14 Sep 2018 12:14:40 +0200 Subject: [PATCH] STM32L1 ADC update for internal channels --- targets/TARGET_STM/TARGET_STM32L1/analogin_device.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/targets/TARGET_STM/TARGET_STM32L1/analogin_device.c b/targets/TARGET_STM/TARGET_STM32L1/analogin_device.c index 907befc161..fd1fd1048a 100644 --- a/targets/TARGET_STM/TARGET_STM32L1/analogin_device.c +++ b/targets/TARGET_STM/TARGET_STM32L1/analogin_device.c @@ -105,6 +105,9 @@ uint16_t adc_read(analogin_t *obj) ADC_ChannelConfTypeDef sConfig = {0}; // Configure ADC channel + sConfig.Rank = ADC_REGULAR_RANK_1; + sConfig.SamplingTime = ADC_SAMPLETIME_48CYCLES; + switch (obj->channel) { case 0: sConfig.Channel = ADC_CHANNEL_0; @@ -156,9 +159,11 @@ uint16_t adc_read(analogin_t *obj) break; case 16: sConfig.Channel = ADC_CHANNEL_TEMPSENSOR; + sConfig.SamplingTime = ADC_SAMPLETIME_384CYCLES; break; case 17: sConfig.Channel = ADC_CHANNEL_VREFINT; + sConfig.SamplingTime = ADC_SAMPLETIME_384CYCLES; break; case 18: sConfig.Channel = ADC_CHANNEL_18; @@ -216,9 +221,6 @@ uint16_t adc_read(analogin_t *obj) return 0; } - sConfig.Rank = ADC_REGULAR_RANK_1; - sConfig.SamplingTime = ADC_SAMPLETIME_16CYCLES; - HAL_ADC_ConfigChannel(&obj->handle, &sConfig); HAL_ADC_Start(&obj->handle); // Start conversion