diff --git a/targets/TARGET_STM/TARGET_STM32L0/analogin_device.c b/targets/TARGET_STM/TARGET_STM32L0/analogin_device.c index 004db4b6e4..fec3a4af9c 100644 --- a/targets/TARGET_STM/TARGET_STM32L0/analogin_device.c +++ b/targets/TARGET_STM/TARGET_STM32L0/analogin_device.c @@ -175,11 +175,13 @@ uint16_t adc_read(analogin_t *obj) HAL_ADC_Start(&obj->handle); // Start conversion // Wait end of conversion and get value + uint16_t adcValue = 0; if (HAL_ADC_PollForConversion(&obj->handle, 10) == HAL_OK) { - return (uint16_t)HAL_ADC_GetValue(&obj->handle); - } else { - return 0; - } + adcValue = (uint16_t)HAL_ADC_GetValue(&obj->handle); + } + sConfig.Rank = ADC_RANK_NONE; + HAL_ADC_ConfigChannel(&obj->handle, &sConfig); + return adcValue; } #endif