From 41b8eda589e4b1ba8b70fbaccd255061e272f7c1 Mon Sep 17 00:00:00 2001 From: bcostm Date: Mon, 21 Nov 2016 13:07:26 +0100 Subject: [PATCH] STM32F4 - Clear VBATE and TSVREFE bits before configuring ADC channels --- targets/TARGET_STM/TARGET_STM32F4/analogin_api.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/targets/TARGET_STM/TARGET_STM32F4/analogin_api.c b/targets/TARGET_STM/TARGET_STM32F4/analogin_api.c index f2204a1551..4cc67f0bf4 100644 --- a/targets/TARGET_STM/TARGET_STM32F4/analogin_api.c +++ b/targets/TARGET_STM/TARGET_STM32F4/analogin_api.c @@ -183,13 +183,14 @@ static inline uint16_t adc_read(analogin_t *obj) return 0; } + ADC->CCR &= ~(ADC_CCR_VBATE | ADC_CCR_TSVREFE); // Workaround HAL_ADC_ConfigChannel(&AdcHandle, &sConfig); HAL_ADC_Start(&AdcHandle); // Start conversion // Wait end of conversion and get value if (HAL_ADC_PollForConversion(&AdcHandle, 10) == HAL_OK) { - return (HAL_ADC_GetValue(&AdcHandle)); + return (uint16_t)HAL_ADC_GetValue(&AdcHandle); } else { return 0; }