Turn-key PCB assembly services in prototype quantities or low-volume to mid-volume production runs

Multichannel ADC using DMA on STM32

Last time we have tried to do a single conversion of one channel. We were waiting for the result in a loop which isn’t an effective way of using processor resources. It is better to trigger conversion and wait for conversion complete interrupt. During this time processor can do other tasks rather than wait for ADC conversion complete. So this time we will go through another example where we will set up more than one channel and read ADC values within interrupt service routine. If we need to convert several channels continuously, we need to set up Sequence registers (ADC_SQRx). There are three sequence registers: ADC_SQR1, ADC_SQR2, and ADC_SQR3 where we can set up a maximum of 16 channels in any order. Conversion sequence starts with SQ1[4:0] settings in ADC_SQR3… Continue reading