summaryrefslogtreecommitdiff
path: root/ports/stm32/adc.c
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2018-04-11 14:29:37 +1000
committerDamien George <damien.p.george@gmail.com>2018-04-11 14:29:37 +1000
commit1d6c155d6ac1c335e66b427cbead55b4217fc097 (patch)
tree033d02726f4d4063dd866a473078776b56af18e2 /ports/stm32/adc.c
parent06807c1bde6885a070be78e63271ad596e31c06c (diff)
stm32/adc: Fix config of EOC selection and Ext-Trig for ADC periph.
A value of DISABLE for EOCSelection is invalid. This would have been interpreted instead as ADC_EOC_SEQ_CONV, but really it should be ADC_EOC_SINGLE_CONV for the uses in this code. So this has been fixed. ExternalTrigConv should be ADC_SOFTWARE_START because all ADC conversions are started by software. This is now fixed.
Diffstat (limited to 'ports/stm32/adc.c')
-rw-r--r--ports/stm32/adc.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/ports/stm32/adc.c b/ports/stm32/adc.c
index dea69a727..5875430bd 100644
--- a/ports/stm32/adc.c
+++ b/ports/stm32/adc.c
@@ -217,8 +217,8 @@ STATIC void adc_init_single(pyb_obj_adc_t *adc_obj) {
#if defined(STM32F4) || defined(STM32F7)
adcHandle->Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV2;
adcHandle->Init.ScanConvMode = DISABLE;
- adcHandle->Init.ExternalTrigConv = ADC_EXTERNALTRIGCONV_T1_CC1;
- adcHandle->Init.EOCSelection = DISABLE;
+ adcHandle->Init.ExternalTrigConv = ADC_SOFTWARE_START;
+ adcHandle->Init.EOCSelection = ADC_EOC_SINGLE_CONV;
#elif defined(STM32L4)
adcHandle->Init.ClockPrescaler = ADC_CLOCK_ASYNC_DIV1;
adcHandle->Init.ScanConvMode = ADC_SCAN_DISABLE;
@@ -618,15 +618,15 @@ void adc_init_all(pyb_adc_all_obj_t *adc_all, uint32_t resolution, uint32_t en_m
adcHandle->Init.DataAlign = ADC_DATAALIGN_RIGHT;
adcHandle->Init.NbrOfConversion = 1;
adcHandle->Init.DMAContinuousRequests = DISABLE;
- adcHandle->Init.EOCSelection = DISABLE;
+ adcHandle->Init.EOCSelection = ADC_EOC_SINGLE_CONV;
#if defined(STM32F4) || defined(STM32F7)
adcHandle->Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV2;
adcHandle->Init.ScanConvMode = DISABLE;
- adcHandle->Init.ExternalTrigConv = ADC_EXTERNALTRIGCONV_T1_CC1;
+ adcHandle->Init.ExternalTrigConv = ADC_SOFTWARE_START;
#elif defined(STM32L4)
adcHandle->Init.ClockPrescaler = ADC_CLOCK_ASYNC_DIV2;
adcHandle->Init.ScanConvMode = ADC_SCAN_DISABLE;
- adcHandle->Init.ExternalTrigConv = ADC_EXTERNALTRIG_T1_CC1;
+ adcHandle->Init.ExternalTrigConv = ADC_SOFTWARE_START;
adcHandle->Init.LowPowerAutoWait = DISABLE;
adcHandle->Init.Overrun = ADC_OVR_DATA_PRESERVED;
adcHandle->Init.OversamplingMode = DISABLE;