From 5d6bc8fa7b4bc7c58537c1e3dfc227e8b8385ca4 Mon Sep 17 00:00:00 2001 From: jflyper Date: Thu, 11 Jan 2018 12:30:05 +0900 Subject: [PATCH] Enable scan conversion for injected channels --- src/main/drivers/adc_stm32f4xx.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/drivers/adc_stm32f4xx.c b/src/main/drivers/adc_stm32f4xx.c index 04ea4cf20d..0b7320eedb 100644 --- a/src/main/drivers/adc_stm32f4xx.c +++ b/src/main/drivers/adc_stm32f4xx.c @@ -114,8 +114,14 @@ void adcInitDevice(ADC_TypeDef *adcdev, int channelCount) ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None; ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; ADC_InitStructure.ADC_NbrOfConversion = channelCount; - ADC_InitStructure.ADC_ScanConvMode = channelCount > 1 ? ENABLE : DISABLE; // 1=scan more that one channel in group + // Multiple injected channel seems to require scan conversion mode to be + // enabled even if main (non-injected) channel count is 1. +#ifdef USE_ADC_INTERNAL + ADC_InitStructure.ADC_ScanConvMode = ENABLE; +#else + ADC_InitStructure.ADC_ScanConvMode = channelCount > 1 ? ENABLE : DISABLE; // 1=scan more that one channel in group +#endif ADC_Init(adcdev, &ADC_InitStructure); }