diff --git a/os/hal/ports/STM32/LLD/ADCv3/hal_adc_lld.c b/os/hal/ports/STM32/LLD/ADCv3/hal_adc_lld.c index 019e85b5d..ba987adc9 100644 --- a/os/hal/ports/STM32/LLD/ADCv3/hal_adc_lld.c +++ b/os/hal/ports/STM32/LLD/ADCv3/hal_adc_lld.c @@ -520,12 +520,20 @@ void adc_lld_init(void) { /* ADC units pre-initializations.*/ #if defined(STM32F3XX) +#if STM32_HAS_ADC1 && STM32_HAS_ADC2 #if STM32_ADC_USE_ADC1 || STM32_ADC_USE_ADC2 rccEnableADC12(FALSE); rccResetADC12(); ADC1_2_COMMON->CCR = STM32_ADC_ADC12_CLOCK_MODE | ADC_DMA_MDMA; rccDisableADC12(FALSE); #endif +#else +#if STM32_ADC_USE_ADC1 + rccEnableADC12(FALSE); + rccResetADC12(); + ADC1_COMMON->CCR = STM32_ADC_ADC12_CLOCK_MODE | ADC_DMA_MDMA; + rccDisableADC12(FALSE); +#endif #if STM32_ADC_USE_ADC3 || STM32_ADC_USE_ADC4 rccEnableADC34(FALSE); rccResetADC34(); @@ -533,6 +541,7 @@ void adc_lld_init(void) { rccDisableADC34(FALSE); #endif #endif +#endif #if defined(STM32L4XX) rccEnableADC123(FALSE); @@ -726,13 +735,18 @@ void adc_lld_stop(ADCDriver *adcp) { #endif #if defined(STM32F3XX) +#if STM32_HAS_ADC1 || STM32_HAS_ADC2 if ((clkmask & 0x3) == 0) { rccDisableADC12(FALSE); } +#endif + +#if STM32_HAS_ADC3 || STM32_HAS_ADC4 if ((clkmask & 0xC) == 0) { rccDisableADC34(FALSE); } #endif +#endif #if defined(STM32L4XX) if ((clkmask & 0x7) == 0) { diff --git a/os/hal/ports/STM32/LLD/ADCv3/hal_adc_lld.h b/os/hal/ports/STM32/LLD/ADCv3/hal_adc_lld.h index bb4d459cb..2a295aead 100644 --- a/os/hal/ports/STM32/LLD/ADCv3/hal_adc_lld.h +++ b/os/hal/ports/STM32/LLD/ADCv3/hal_adc_lld.h @@ -414,9 +414,11 @@ #endif /* ISR arrangments checks.*/ +#if STM32_HAS_ADC1 && STM32_HAS_ADC2 #if STM32_ADC1_NUMBER != STM32_ADC2_NUMBER #error "ADCv3 driver expects STM32_ADC1_NUMBER == STM32_ADC2_NUMBER from registry" #endif +#endif /* ADC IRQ priority tests.*/ #if STM32_ADC_USE_ADC1 && \