Skip to main content
Visitor II
August 21, 2026
Question

Can I read the ADC's injection group data using direct register access?

  • August 21, 2026
  • 2 replies
  • 83 views

Regarding the methods for reading data from the ADC injected group, I’ve only seen two approaches: interrupts and polling. Can I directly map memory in the software to ADCx->JDR1 to retrieve the data?  Just like:

#define ADC_ADCRESULT0_ADDR ((volatile uint32_t*)&ADC1->JDR1)

inline static const *uint32_t adc_buffer[0] = {ADC_ADCRESULT0_ADDR }

2 replies

ST Technical Moderator
August 21, 2026

Hello ​@xyt 

Indeed conversion data from ADC injected group can be fetched only by CPU (after end of conversion flag interrupt or polling), not by DMA like regular group.
You can use a pointer to injected data register (JDR1, ..., JDR4) memory adress.

 

But or a better code readability, usage of LL or HAL API is recommended:
 

data = LL_ADC_INJ_ReadConversionData32(ADCx, LL_ADC_INJ_RANK_y);

 

In order to give better visibility on the answered topics, please click on 'Best answer' on the reply which solved your issue or answered your question. Saket_Om
EXUE.2
ST Employee
August 26, 2026

it is impossible to map a register address to a const buffer, the value of register need to be read time to time.