From 03b03feb8d8409939902861bb0867ef11041e77f Mon Sep 17 00:00:00 2001 From: Alexandre Bourdiol Date: Mon, 3 Feb 2020 15:53:40 +0100 Subject: [PATCH] TARGET_STM32F1: don't set ADC common register when ADC doesn't support it STM32F103ZE: ADC3 doesn't support common settings. __LL_ADC_COMMON_INSTANCE(ADC3) returns 0 --- targets/TARGET_STM/TARGET_STM32F1/analogin_device.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/targets/TARGET_STM/TARGET_STM32F1/analogin_device.c b/targets/TARGET_STM/TARGET_STM32F1/analogin_device.c index e920b90613..f68d7e8d19 100644 --- a/targets/TARGET_STM/TARGET_STM32F1/analogin_device.c +++ b/targets/TARGET_STM/TARGET_STM32F1/analogin_device.c @@ -177,7 +177,10 @@ uint16_t adc_read(analogin_t *obj) if (HAL_ADC_PollForConversion(&obj->handle, 10) == HAL_OK) { adcValue = (uint16_t)HAL_ADC_GetValue(&obj->handle); } - LL_ADC_SetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE((&obj->handle)->Instance), LL_ADC_PATH_INTERNAL_NONE); + + if (__LL_ADC_COMMON_INSTANCE(__LL_ADC_COMMON_INSTANCE((&obj->handle)->Instance)) != 0U) { + LL_ADC_SetCommonPathInternalCh(__LL_ADC_COMMON_INSTANCE((&obj->handle)->Instance), LL_ADC_PATH_INTERNAL_NONE); + } return adcValue; }