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
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 )
- 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!