HAL_ADC_Start_DMA acquire only a subset of channels
Hi there,
i'm working on a STM32F103 MCU and I want to acquire 9 channels with ADC1.
With STM32Cube I configured the ADC1 in this way:
- Scan conversion mode: Enabled.
- Enable regular conversion: Enable.
- Number of conversion: 9
These is the channel list:
- Vref Int
- Temperature Sensor
- IN8
IN9
IN10
- IN11
- IN12
- IN13
- IN15
Also I configured the DMA to transfer the data from the ADC to a memory buffer.
- Mode: Normal
- Increment Address: Memory
- Data Width: Word
To start the conversion I use:
HAL_ADC_Start_DMA( ADC1_ModuleHandler, ADC_1_Buffer, ADC_1_CH_MAX_VALUE )
Where:
ADC1_ModuleHandler: ADC Handler.
ADC_1_Buffer: uint32_t array with 9 elemets.
ADC_1_CH_MAX_VALUE: enum to identify the channel. It starts from 0 to 9.
The conversion works fine but into the ADC_1_Buffer only the first five elements contain a value different from 0. the other 4 elements contain 0.
Moreover if I convert to analog voltage the value of the first element ( Vref Int) I obtain 1.2V that correspond to the internal Vref. So I think that the ADC conversion works.
I don't know why only a subset of channels is converted.
Do I missing some configuration parameters?
Thanks in advance!
Federico
#dma-adc #scan-mode #stm32cubemx(hal) Note: this post was migrated and contained many threaded conversations, some content may be missing.