diff options
| author | Damien George <damien.p.george@gmail.com> | 2018-04-11 14:29:37 +1000 |
|---|---|---|
| committer | Damien George <damien.p.george@gmail.com> | 2018-04-11 14:29:37 +1000 |
| commit | 1d6c155d6ac1c335e66b427cbead55b4217fc097 (patch) | |
| tree | 033d02726f4d4063dd866a473078776b56af18e2 | |
| parent | 06807c1bde6885a070be78e63271ad596e31c06c (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.
| -rw-r--r-- | ports/stm32/adc.c | 10 |
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; |
