STM32L4xx_HAL_Driver  1.14.0

Functions

__STATIC_INLINE uint32_t LL_ADC_DMA_GetRegAddr (ADC_TypeDef *ADCx, uint32_t Register)
 Function to help to configure DMA transfer from ADC: retrieve the ADC register address from ADC instance and a list of ADC registers intended to be used (most commonly) with DMA transfer. More...
 

Detailed Description

Function Documentation

◆ LL_ADC_DMA_GetRegAddr()

__STATIC_INLINE uint32_t LL_ADC_DMA_GetRegAddr ( ADC_TypeDef *  ADCx,
uint32_t  Register 
)

Function to help to configure DMA transfer from ADC: retrieve the ADC register address from ADC instance and a list of ADC registers intended to be used (most commonly) with DMA transfer.

Note
These ADC registers are data registers: when ADC conversion data is available in ADC data registers, ADC generates a DMA transfer request.
This macro is intended to be used with LL DMA driver, refer to function "LL_DMA_ConfigAddresses()". Example: LL_DMA_ConfigAddresses(DMA1, LL_DMA_CHANNEL_1, LL_ADC_DMA_GetRegAddr(ADC1, LL_ADC_DMA_REG_REGULAR_DATA), (uint32_t)&< array or variable >, LL_DMA_DIRECTION_PERIPH_TO_MEMORY);
For devices with several ADC: in multimode, some devices use a different data register outside of ADC instance scope (common data register). This macro manages this register difference, only ADC instance has to be set as parameter. DR RDATA LL_ADC_DMA_GetRegAddr
CDR RDATA_MST LL_ADC_DMA_GetRegAddr
CDR RDATA_SLV LL_ADC_DMA_GetRegAddr
Parameters
ADCxADC instance
RegisterThis parameter can be one of the following values:
  • LL_ADC_DMA_REG_REGULAR_DATA
  • LL_ADC_DMA_REG_REGULAR_DATA_MULTI (1)
(1) Available on devices with several ADC instances.
Return values
ADCregister address

Definition at line 2370 of file stm32l4xx_ll_adc.h.

2371 {
2372  register uint32_t data_reg_addr;
2373 
2374  if (Register == LL_ADC_DMA_REG_REGULAR_DATA)
2375  {
2376  /* Retrieve address of register DR */
2377  data_reg_addr = (uint32_t) &(ADCx->DR);
2378  }
2379  else /* (Register == LL_ADC_DMA_REG_REGULAR_DATA_MULTI) */
2380  {
2381  /* Retrieve address of register CDR */
2382  data_reg_addr = (uint32_t) &((__LL_ADC_COMMON_INSTANCE(ADCx))->CDR);
2383  }
2384 
2385  return data_reg_addr;
2386 }