cancel
Showing results for 
Search instead for 
Did you mean: 

Select ADC channel to convert

federico.massimi
Associate III
Posted on April 30, 2018 at 18:16

hi, I have a problem using an ADC of a STM32L4

In my project I have to sample 5 analogue channels with an ADC. I've configured everything with STM32CubeMX and want to use it in polling mode.

I have seen examples where this code is:

HAL_ADC_Start(&hadc);

if (HAL_ADC_PollForConversion(&hadc, HAL_MAX_DELAY) == HAL_OK) {

ADC_ch0_value = HAL_ADC_GetValue(&hadc);

HAL_ADC_PollForConversion(&hadc, HAL_MAX_DELAY);

ADC_ch1_value = HAL_ADC_GetValue(&hadc);

HAL_ADC_PollForConversion(&hadc, HAL_MAX_DELAY);

ADC_ch2_value = HAL_ADC_GetValue(&hadc);

...

...

}

HAL_ADC_Stop(&hadc);

in which the channels are converted sequentially, what I would like to do instead is to convert only the selected channel, for example:

HAL_ADC_Start(&hadc);

---> SELECT ADC CHANNEL 3 <---

if (HAL_ADC_PollForConversion(&hadc, HAL_MAX_DELAY) == HAL_OK) {

ADC_ch3_value = HAL_ADC_GetValue(&hadc);

}

HAL_ADC_Stop(&hadc);

// other code

// other function

HAL_ADC_Start(&hadc);

---> SELECT ADC CHANNEL 1 <---

if (HAL_ADC_PollForConversion(&hadc, HAL_MAX_DELAY) == HAL_OK) {

ADC_ch1_value = HAL_ADC_GetValue(&hadc);

}

HAL_ADC_Stop(&hadc);

what I do not know how to do is the code for:

---> SELECT ADC CHANNEL n <---

How can I do? can someone help me?

0 REPLIES 0