STM32L4xx_HAL_Driver  1.14.0
Initialization and De-initialization Functions

Functions

ErrorStatus LL_DMA2D_DeInit (DMA2D_TypeDef *DMA2Dx)
 De-initialize DMA2D registers (registers restored to their default values). More...
 
ErrorStatus LL_DMA2D_Init (DMA2D_TypeDef *DMA2Dx, LL_DMA2D_InitTypeDef *DMA2D_InitStruct)
 Initialize DMA2D registers according to the specified parameters in DMA2D_InitStruct. More...
 
void LL_DMA2D_StructInit (LL_DMA2D_InitTypeDef *DMA2D_InitStruct)
 Set each LL_DMA2D_InitTypeDef field to default value. More...
 
void LL_DMA2D_ConfigLayer (DMA2D_TypeDef *DMA2Dx, LL_DMA2D_LayerCfgTypeDef *DMA2D_LayerCfg, uint32_t LayerIdx)
 Configure the foreground or background according to the specified parameters in the LL_DMA2D_LayerCfgTypeDef structure. More...
 
void LL_DMA2D_LayerCfgStructInit (LL_DMA2D_LayerCfgTypeDef *DMA2D_LayerCfg)
 Set each LL_DMA2D_LayerCfgTypeDef field to default value. More...
 
void LL_DMA2D_ConfigOutputColor (DMA2D_TypeDef *DMA2Dx, LL_DMA2D_ColorTypeDef *DMA2D_ColorStruct)
 Initialize DMA2D output color register according to the specified parameters in DMA2D_ColorStruct. More...
 
uint32_t LL_DMA2D_GetOutputBlueColor (DMA2D_TypeDef *DMA2Dx, uint32_t ColorMode)
 Return DMA2D output Blue color. More...
 
uint32_t LL_DMA2D_GetOutputGreenColor (DMA2D_TypeDef *DMA2Dx, uint32_t ColorMode)
 Return DMA2D output Green color. More...
 
uint32_t LL_DMA2D_GetOutputRedColor (DMA2D_TypeDef *DMA2Dx, uint32_t ColorMode)
 Return DMA2D output Red color. More...
 
uint32_t LL_DMA2D_GetOutputAlphaColor (DMA2D_TypeDef *DMA2Dx, uint32_t ColorMode)
 Return DMA2D output Alpha color. More...
 
void LL_DMA2D_ConfigSize (DMA2D_TypeDef *DMA2Dx, uint32_t NbrOfLines, uint32_t NbrOfPixelsPerLines)
 Configure DMA2D transfer size. More...
 

Detailed Description

Function Documentation

◆ LL_DMA2D_ConfigLayer()

void LL_DMA2D_ConfigLayer ( DMA2D_TypeDef *  DMA2Dx,
LL_DMA2D_LayerCfgTypeDef DMA2D_LayerCfg,
uint32_t  LayerIdx 
)

Configure the foreground or background according to the specified parameters in the LL_DMA2D_LayerCfgTypeDef structure.

Parameters
DMA2DxDMA2D Instance
DMA2D_LayerCfgpointer to a LL_DMA2D_LayerCfgTypeDef structure that contains the configuration information for the specified layer.
LayerIdxDMA2D Layer index. This parameter can be one of the following values: 0(background) / 1(foreground)
Return values
None

Definition at line 302 of file stm32l4xx_ll_dma2d.c.

303 {
304  /* Check the parameters */
305  assert_param(IS_LL_DMA2D_OFFSET(DMA2D_LayerCfg->LineOffset));
306  assert_param(IS_LL_DMA2D_LCMODE(DMA2D_LayerCfg->ColorMode));
307  assert_param(IS_LL_DMA2D_CLUTCMODE(DMA2D_LayerCfg->CLUTColorMode));
308  assert_param(IS_LL_DMA2D_CLUTSIZE(DMA2D_LayerCfg->CLUTSize));
309  assert_param(IS_LL_DMA2D_ALPHAMODE(DMA2D_LayerCfg->AlphaMode));
310  assert_param(IS_LL_DMA2D_GREEN(DMA2D_LayerCfg->Green));
311  assert_param(IS_LL_DMA2D_RED(DMA2D_LayerCfg->Red));
312  assert_param(IS_LL_DMA2D_BLUE(DMA2D_LayerCfg->Blue));
313  assert_param(IS_LL_DMA2D_ALPHA(DMA2D_LayerCfg->Alpha));
314  assert_param(IS_LL_DMA2D_ALPHAINV(DMA2D_LayerCfg->AlphaInversionMode));
315  assert_param(IS_LL_DMA2D_RBSWAP(DMA2D_LayerCfg->RBSwapMode));
316 
317 
318  if (LayerIdx == 0U)
319  {
320  /* Configure the background memory address */
321  LL_DMA2D_BGND_SetMemAddr(DMA2Dx, DMA2D_LayerCfg->MemoryAddress);
322 
323  /* Configure the background line offset */
324  LL_DMA2D_BGND_SetLineOffset(DMA2Dx, DMA2D_LayerCfg->LineOffset);
325 
326  /* Configure the background Alpha value, Alpha mode, RB swap, Alpha inversion
327  CLUT size, CLUT Color mode and Color mode */
328  MODIFY_REG(DMA2Dx->BGPFCCR, \
329  (DMA2D_BGPFCCR_ALPHA | DMA2D_BGPFCCR_RBS | DMA2D_BGPFCCR_AI | DMA2D_BGPFCCR_AM | \
330  DMA2D_BGPFCCR_CS | DMA2D_BGPFCCR_CCM | DMA2D_BGPFCCR_CM), \
331  ((DMA2D_LayerCfg->Alpha << DMA2D_BGPFCCR_ALPHA_Pos) | DMA2D_LayerCfg->RBSwapMode | \
332  DMA2D_LayerCfg->AlphaInversionMode | DMA2D_LayerCfg->AlphaMode | \
333  (DMA2D_LayerCfg->CLUTSize << DMA2D_BGPFCCR_CS_Pos) | DMA2D_LayerCfg->CLUTColorMode | \
334  DMA2D_LayerCfg->ColorMode));
335 
336  /* Configure the background color */
337  LL_DMA2D_BGND_SetColor(DMA2Dx, DMA2D_LayerCfg->Red, DMA2D_LayerCfg->Green, DMA2D_LayerCfg->Blue);
338 
339  /* Configure the background CLUT memory address */
340  LL_DMA2D_BGND_SetCLUTMemAddr(DMA2Dx, DMA2D_LayerCfg->CLUTMemoryAddress);
341  }
342  else
343  {
344  /* Configure the foreground memory address */
345  LL_DMA2D_FGND_SetMemAddr(DMA2Dx, DMA2D_LayerCfg->MemoryAddress);
346 
347  /* Configure the foreground line offset */
348  LL_DMA2D_FGND_SetLineOffset(DMA2Dx, DMA2D_LayerCfg->LineOffset);
349 
350  /* Configure the foreground Alpha value, Alpha mode, RB swap, Alpha inversion
351  CLUT size, CLUT Color mode and Color mode */
352  MODIFY_REG(DMA2Dx->FGPFCCR, \
353  (DMA2D_FGPFCCR_ALPHA | DMA2D_FGPFCCR_RBS | DMA2D_FGPFCCR_AI | DMA2D_FGPFCCR_AM | \
354  DMA2D_FGPFCCR_CS | DMA2D_FGPFCCR_CCM | DMA2D_FGPFCCR_CM), \
355  ((DMA2D_LayerCfg->Alpha << DMA2D_FGPFCCR_ALPHA_Pos) | DMA2D_LayerCfg->RBSwapMode | \
356  DMA2D_LayerCfg->AlphaInversionMode | DMA2D_LayerCfg->AlphaMode | \
357  (DMA2D_LayerCfg->CLUTSize << DMA2D_FGPFCCR_CS_Pos) | DMA2D_LayerCfg->CLUTColorMode | \
358  DMA2D_LayerCfg->ColorMode));
359 
360  /* Configure the foreground color */
361  LL_DMA2D_FGND_SetColor(DMA2Dx, DMA2D_LayerCfg->Red, DMA2D_LayerCfg->Green, DMA2D_LayerCfg->Blue);
362 
363  /* Configure the foreground CLUT memory address */
364  LL_DMA2D_FGND_SetCLUTMemAddr(DMA2Dx, DMA2D_LayerCfg->CLUTMemoryAddress);
365  }
366 }
__STATIC_INLINE void LL_DMA2D_FGND_SetLineOffset(DMA2D_TypeDef *DMA2Dx, uint32_t LineOffset)
Set DMA2D foreground line offset, expressed on 14 bits ([13:0] bits). FGOR LO LL_DMA2D_FGND_SetLineO...
__STATIC_INLINE void LL_DMA2D_BGND_SetColor(DMA2D_TypeDef *DMA2Dx, uint32_t Red, uint32_t Green, uint32_t Blue)
Set DMA2D background color values, expressed on 24 bits ([23:0] bits). BGCOLR RED LL_DMA2D_BGND_SetC...
__STATIC_INLINE void LL_DMA2D_BGND_SetCLUTMemAddr(DMA2D_TypeDef *DMA2Dx, uint32_t CLUTMemoryAddress)
Set DMA2D background CLUT memory address, expressed on 32 bits ([31:0] bits). BGCMAR MA LL_DMA2D_BGN...
__STATIC_INLINE void LL_DMA2D_FGND_SetMemAddr(DMA2D_TypeDef *DMA2Dx, uint32_t MemoryAddress)
Set DMA2D foreground memory address, expressed on 32 bits ([31:0] bits). FGMAR MA LL_DMA2D_FGND_SetM...
__STATIC_INLINE void LL_DMA2D_FGND_SetColor(DMA2D_TypeDef *DMA2Dx, uint32_t Red, uint32_t Green, uint32_t Blue)
Set DMA2D foreground color values, expressed on 24 bits ([23:0] bits). FGCOLR RED LL_DMA2D_FGND_SetC...
MODIFY_REG(hrtc->Instance->CR, RTC_CR_WUCKSEL,(uint32_t) WakeUpClock)
__STATIC_INLINE void LL_DMA2D_BGND_SetLineOffset(DMA2D_TypeDef *DMA2Dx, uint32_t LineOffset)
Set DMA2D background line offset, expressed on 14 bits ([13:0] bits). BGOR LO LL_DMA2D_BGND_SetLineO...
__STATIC_INLINE void LL_DMA2D_FGND_SetCLUTMemAddr(DMA2D_TypeDef *DMA2Dx, uint32_t CLUTMemoryAddress)
Set DMA2D foreground CLUT memory address, expressed on 32 bits ([31:0] bits). FGCMAR MA LL_DMA2D_FGN...
assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock))
__STATIC_INLINE void LL_DMA2D_BGND_SetMemAddr(DMA2D_TypeDef *DMA2Dx, uint32_t MemoryAddress)
Set DMA2D background memory address, expressed on 32 bits ([31:0] bits). BGMAR MA LL_DMA2D_BGND_SetM...

◆ LL_DMA2D_ConfigOutputColor()

void LL_DMA2D_ConfigOutputColor ( DMA2D_TypeDef *  DMA2Dx,
LL_DMA2D_ColorTypeDef DMA2D_ColorStruct 
)

Initialize DMA2D output color register according to the specified parameters in DMA2D_ColorStruct.

Parameters
DMA2DxDMA2D Instance
DMA2D_ColorStructpointer to a LL_DMA2D_ColorTypeDef structure that contains the color configuration information for the specified DMA2D peripheral.
Return values
None

Definition at line 400 of file stm32l4xx_ll_dma2d.c.

401 {
402  uint32_t outgreen;
403  uint32_t outred;
404  uint32_t outalpha;
405 
406  /* Check the parameters */
407  assert_param(IS_DMA2D_ALL_INSTANCE(DMA2Dx));
408  assert_param(IS_LL_DMA2D_OCMODE(DMA2D_ColorStruct->ColorMode));
409  assert_param(IS_LL_DMA2D_GREEN(DMA2D_ColorStruct->OutputGreen));
410  assert_param(IS_LL_DMA2D_RED(DMA2D_ColorStruct->OutputRed));
411  assert_param(IS_LL_DMA2D_BLUE(DMA2D_ColorStruct->OutputBlue));
412  assert_param(IS_LL_DMA2D_ALPHA(DMA2D_ColorStruct->OutputAlpha));
413 
414  /* DMA2D OCOLR register configuration ------------------------------------------*/
415  if (DMA2D_ColorStruct->ColorMode == LL_DMA2D_OUTPUT_MODE_ARGB8888)
416  {
417  outgreen = DMA2D_ColorStruct->OutputGreen << 8U;
418  outred = DMA2D_ColorStruct->OutputRed << 16U;
419  outalpha = DMA2D_ColorStruct->OutputAlpha << 24U;
420  }
421  else if (DMA2D_ColorStruct->ColorMode == LL_DMA2D_OUTPUT_MODE_RGB888)
422  {
423  outgreen = DMA2D_ColorStruct->OutputGreen << 8U;
424  outred = DMA2D_ColorStruct->OutputRed << 16U;
425  outalpha = 0x00000000U;
426  }
427  else if (DMA2D_ColorStruct->ColorMode == LL_DMA2D_OUTPUT_MODE_RGB565)
428  {
429  outgreen = DMA2D_ColorStruct->OutputGreen << 5U;
430  outred = DMA2D_ColorStruct->OutputRed << 11U;
431  outalpha = 0x00000000U;
432  }
433  else if (DMA2D_ColorStruct->ColorMode == LL_DMA2D_OUTPUT_MODE_ARGB1555)
434  {
435  outgreen = DMA2D_ColorStruct->OutputGreen << 5U;
436  outred = DMA2D_ColorStruct->OutputRed << 10U;
437  outalpha = DMA2D_ColorStruct->OutputAlpha << 15U;
438  }
439  else /* ColorMode = LL_DMA2D_OUTPUT_MODE_ARGB4444 */
440  {
441  outgreen = DMA2D_ColorStruct->OutputGreen << 4U;
442  outred = DMA2D_ColorStruct->OutputRed << 8U;
443  outalpha = DMA2D_ColorStruct->OutputAlpha << 12U;
444  }
445  LL_DMA2D_SetOutputColor(DMA2Dx, (outgreen | outred | DMA2D_ColorStruct->OutputBlue | outalpha));
446 }
__STATIC_INLINE void LL_DMA2D_SetOutputColor(DMA2D_TypeDef *DMA2Dx, uint32_t OutputColor)
Set DMA2D output color, expressed on 32 bits ([31:0] bits).
assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock))

◆ LL_DMA2D_ConfigSize()

void LL_DMA2D_ConfigSize ( DMA2D_TypeDef *  DMA2Dx,
uint32_t  NbrOfLines,
uint32_t  NbrOfPixelsPerLines 
)

Configure DMA2D transfer size.

Parameters
DMA2DxDMA2D Instance
NbrOfLinesValue between Min_Data=0 and Max_Data=0xFFFF
NbrOfPixelsPerLinesValue between Min_Data=0 and Max_Data=0x3FFF
Return values
None

Definition at line 627 of file stm32l4xx_ll_dma2d.c.

628 {
629  MODIFY_REG(DMA2Dx->NLR, (DMA2D_NLR_PL | DMA2D_NLR_NL), \
630  ((NbrOfPixelsPerLines << DMA2D_NLR_PL_Pos) | NbrOfLines));
631 }
MODIFY_REG(hrtc->Instance->CR, RTC_CR_WUCKSEL,(uint32_t) WakeUpClock)

◆ LL_DMA2D_DeInit()

ErrorStatus LL_DMA2D_DeInit ( DMA2D_TypeDef *  DMA2Dx)

De-initialize DMA2D registers (registers restored to their default values).

Parameters
DMA2DxDMA2D Instance
Return values
AnErrorStatus enumeration value:
  • SUCCESS: DMA2D registers are de-initialized
  • ERROR: DMA2D registers are not de-initialized

Definition at line 148 of file stm32l4xx_ll_dma2d.c.

149 {
150  ErrorStatus status = SUCCESS;
151 
152  /* Check the parameters */
153  assert_param(IS_DMA2D_ALL_INSTANCE(DMA2Dx));
154 
155  if (DMA2Dx == DMA2D)
156  {
157  /* Force reset of DMA2D clock */
158  LL_AHB1_GRP1_ForceReset(LL_AHB1_GRP1_PERIPH_DMA2D);
159 
160  /* Release reset of DMA2D clock */
161  LL_AHB1_GRP1_ReleaseReset(LL_AHB1_GRP1_PERIPH_DMA2D);
162  }
163  else
164  {
165  status = ERROR;
166  }
167 
168  return (status);
169 }
__STATIC_INLINE void LL_AHB1_GRP1_ForceReset(uint32_t Periphs)
Force AHB1 peripherals reset. AHB1RSTR DMA1RST LL_AHB1_GRP1_ForceReset AHB1RSTR DMA2RST LL_AHB1_GRP...
__STATIC_INLINE void LL_AHB1_GRP1_ReleaseReset(uint32_t Periphs)
Release AHB1 peripherals reset. AHB1RSTR DMA1RST LL_AHB1_GRP1_ReleaseReset AHB1RSTR DMA2RST LL_AHB1...
assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock))

◆ LL_DMA2D_GetOutputAlphaColor()

uint32_t LL_DMA2D_GetOutputAlphaColor ( DMA2D_TypeDef *  DMA2Dx,
uint32_t  ColorMode 
)

Return DMA2D output Alpha color.

Parameters
DMA2DxDMA2D Instance.
ColorModeThis parameter can be one of the following values:
  • LL_DMA2D_OUTPUT_MODE_ARGB8888
  • LL_DMA2D_OUTPUT_MODE_RGB888
  • LL_DMA2D_OUTPUT_MODE_RGB565
  • LL_DMA2D_OUTPUT_MODE_ARGB1555
  • LL_DMA2D_OUTPUT_MODE_ARGB4444
Return values
OutputAlpha color value between Min_Data=0 and Max_Data=0xFF

Definition at line 591 of file stm32l4xx_ll_dma2d.c.

592 {
593  uint32_t color;
594 
595  /* Check the parameters */
596  assert_param(IS_DMA2D_ALL_INSTANCE(DMA2Dx));
597  assert_param(IS_LL_DMA2D_OCMODE(ColorMode));
598 
599  /* DMA2D OCOLR register reading ------------------------------------------*/
600  if (ColorMode == LL_DMA2D_OUTPUT_MODE_ARGB8888)
601  {
602  color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0xFF000000U) >> 24U);
603  }
604  else if ((ColorMode == LL_DMA2D_OUTPUT_MODE_RGB888) || (ColorMode == LL_DMA2D_OUTPUT_MODE_RGB565))
605  {
606  color = 0x0U;
607  }
608  else if (ColorMode == LL_DMA2D_OUTPUT_MODE_ARGB1555)
609  {
610  color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0x8000U) >> 15U);
611  }
612  else /* ColorMode = LL_DMA2D_OUTPUT_MODE_ARGB4444 */
613  {
614  color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0xF000U) >> 12U);
615  }
616 
617  return color;
618 }
assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock))

◆ LL_DMA2D_GetOutputBlueColor()

uint32_t LL_DMA2D_GetOutputBlueColor ( DMA2D_TypeDef *  DMA2Dx,
uint32_t  ColorMode 
)

Return DMA2D output Blue color.

Parameters
DMA2DxDMA2D Instance.
ColorModeThis parameter can be one of the following values:
  • LL_DMA2D_OUTPUT_MODE_ARGB8888
  • LL_DMA2D_OUTPUT_MODE_RGB888
  • LL_DMA2D_OUTPUT_MODE_RGB565
  • LL_DMA2D_OUTPUT_MODE_ARGB1555
  • LL_DMA2D_OUTPUT_MODE_ARGB4444
Return values
OutputBlue color value between Min_Data=0 and Max_Data=0xFF

Definition at line 459 of file stm32l4xx_ll_dma2d.c.

460 {
461  uint32_t color;
462 
463  /* Check the parameters */
464  assert_param(IS_DMA2D_ALL_INSTANCE(DMA2Dx));
465  assert_param(IS_LL_DMA2D_OCMODE(ColorMode));
466 
467  /* DMA2D OCOLR register reading ------------------------------------------*/
468  if (ColorMode == LL_DMA2D_OUTPUT_MODE_ARGB8888)
469  {
470  color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0xFFU));
471  }
472  else if (ColorMode == LL_DMA2D_OUTPUT_MODE_RGB888)
473  {
474  color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0xFFU));
475  }
476  else if (ColorMode == LL_DMA2D_OUTPUT_MODE_RGB565)
477  {
478  color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0x1FU));
479  }
480  else if (ColorMode == LL_DMA2D_OUTPUT_MODE_ARGB1555)
481  {
482  color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0x1FU));
483  }
484  else /* ColorMode = LL_DMA2D_OUTPUT_MODE_ARGB4444 */
485  {
486  color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0xFU));
487  }
488 
489  return color;
490 }
assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock))

◆ LL_DMA2D_GetOutputGreenColor()

uint32_t LL_DMA2D_GetOutputGreenColor ( DMA2D_TypeDef *  DMA2Dx,
uint32_t  ColorMode 
)

Return DMA2D output Green color.

Parameters
DMA2DxDMA2D Instance.
ColorModeThis parameter can be one of the following values:
  • LL_DMA2D_OUTPUT_MODE_ARGB8888
  • LL_DMA2D_OUTPUT_MODE_RGB888
  • LL_DMA2D_OUTPUT_MODE_RGB565
  • LL_DMA2D_OUTPUT_MODE_ARGB1555
  • LL_DMA2D_OUTPUT_MODE_ARGB4444
Return values
OutputGreen color value between Min_Data=0 and Max_Data=0xFF

Definition at line 503 of file stm32l4xx_ll_dma2d.c.

504 {
505  uint32_t color;
506 
507  /* Check the parameters */
508  assert_param(IS_DMA2D_ALL_INSTANCE(DMA2Dx));
509  assert_param(IS_LL_DMA2D_OCMODE(ColorMode));
510 
511  /* DMA2D OCOLR register reading ------------------------------------------*/
512  if (ColorMode == LL_DMA2D_OUTPUT_MODE_ARGB8888)
513  {
514  color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0xFF00U) >> 8U);
515  }
516  else if (ColorMode == LL_DMA2D_OUTPUT_MODE_RGB888)
517  {
518  color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0xFF00U) >> 8U);
519  }
520  else if (ColorMode == LL_DMA2D_OUTPUT_MODE_RGB565)
521  {
522  color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0x7E0U) >> 5U);
523  }
524  else if (ColorMode == LL_DMA2D_OUTPUT_MODE_ARGB1555)
525  {
526  color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0x3E0U) >> 5U);
527  }
528  else /* ColorMode = LL_DMA2D_OUTPUT_MODE_ARGB4444 */
529  {
530  color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0xF0U) >> 4U);
531  }
532 
533  return color;
534 }
assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock))

◆ LL_DMA2D_GetOutputRedColor()

uint32_t LL_DMA2D_GetOutputRedColor ( DMA2D_TypeDef *  DMA2Dx,
uint32_t  ColorMode 
)

Return DMA2D output Red color.

Parameters
DMA2DxDMA2D Instance.
ColorModeThis parameter can be one of the following values:
  • LL_DMA2D_OUTPUT_MODE_ARGB8888
  • LL_DMA2D_OUTPUT_MODE_RGB888
  • LL_DMA2D_OUTPUT_MODE_RGB565
  • LL_DMA2D_OUTPUT_MODE_ARGB1555
  • LL_DMA2D_OUTPUT_MODE_ARGB4444
Return values
OutputRed color value between Min_Data=0 and Max_Data=0xFF

Definition at line 547 of file stm32l4xx_ll_dma2d.c.

548 {
549  uint32_t color;
550 
551  /* Check the parameters */
552  assert_param(IS_DMA2D_ALL_INSTANCE(DMA2Dx));
553  assert_param(IS_LL_DMA2D_OCMODE(ColorMode));
554 
555  /* DMA2D OCOLR register reading ------------------------------------------*/
556  if (ColorMode == LL_DMA2D_OUTPUT_MODE_ARGB8888)
557  {
558  color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0xFF0000U) >> 16U);
559  }
560  else if (ColorMode == LL_DMA2D_OUTPUT_MODE_RGB888)
561  {
562  color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0xFF0000U) >> 16U);
563  }
564  else if (ColorMode == LL_DMA2D_OUTPUT_MODE_RGB565)
565  {
566  color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0xF800U) >> 11U);
567  }
568  else if (ColorMode == LL_DMA2D_OUTPUT_MODE_ARGB1555)
569  {
570  color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0x7C00U) >> 10U);
571  }
572  else /* ColorMode = LL_DMA2D_OUTPUT_MODE_ARGB4444 */
573  {
574  color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0xF00U) >> 8U);
575  }
576 
577  return color;
578 }
assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock))

◆ LL_DMA2D_Init()

ErrorStatus LL_DMA2D_Init ( DMA2D_TypeDef *  DMA2Dx,
LL_DMA2D_InitTypeDef DMA2D_InitStruct 
)

Initialize DMA2D registers according to the specified parameters in DMA2D_InitStruct.

Note
DMA2D transfers must be disabled to set initialization bits in configuration registers, otherwise ERROR result is returned.
Parameters
DMA2DxDMA2D Instance
DMA2D_InitStructpointer to a LL_DMA2D_InitTypeDef structure that contains the configuration information for the specified DMA2D peripheral.
Return values
AnErrorStatus enumeration value:
  • SUCCESS: DMA2D registers are initialized according to DMA2D_InitStruct content
  • ERROR: Issue occurred during DMA2D registers initialization

Definition at line 182 of file stm32l4xx_ll_dma2d.c.

183 {
184  ErrorStatus status = ERROR;
185  LL_DMA2D_ColorTypeDef DMA2D_ColorStruct;
186  uint32_t tmp, tmp1, tmp2;
187  uint32_t regMask, regValue;
188 
189  /* Check the parameters */
190  assert_param(IS_DMA2D_ALL_INSTANCE(DMA2Dx));
191  assert_param(IS_LL_DMA2D_MODE(DMA2D_InitStruct->Mode));
192  assert_param(IS_LL_DMA2D_OCMODE(DMA2D_InitStruct->ColorMode));
193  assert_param(IS_LL_DMA2D_LINE(DMA2D_InitStruct->NbrOfLines));
194  assert_param(IS_LL_DMA2D_PIXEL(DMA2D_InitStruct->NbrOfPixelsPerLines));
195  assert_param(IS_LL_DMA2D_GREEN(DMA2D_InitStruct->OutputGreen));
196  assert_param(IS_LL_DMA2D_RED(DMA2D_InitStruct->OutputRed));
197  assert_param(IS_LL_DMA2D_BLUE(DMA2D_InitStruct->OutputBlue));
198  assert_param(IS_LL_DMA2D_ALPHA(DMA2D_InitStruct->OutputAlpha));
199 #if defined(DMA2D_OUTPUT_TWO_BY_TWO_SWAP_SUPPORT)
200  assert_param(IS_LL_DMA2D_SWAP_MODE(DMA2D_InitStruct->OutputSwapMode));
201 #endif /* DMA2D_OUTPUT_TWO_BY_TWO_SWAP_SUPPORT */
202 #if defined(DMA2D_LINE_OFFSET_MODE_SUPPORT)
203  assert_param(IS_LL_DMA2D_OFFSET_MODE(DMA2D_InitStruct->LineOffsetMode));
204 #endif /* DMA2D_LINE_OFFSET_MODE_SUPPORT */
205  assert_param(IS_LL_DMA2D_OFFSET(DMA2D_InitStruct->LineOffset));
206  assert_param(IS_LL_DMA2D_ALPHAINV(DMA2D_InitStruct->AlphaInversionMode));
207  assert_param(IS_LL_DMA2D_RBSWAP(DMA2D_InitStruct->RBSwapMode));
208 
209  /* DMA2D transfers must be disabled to configure bits in initialization registers */
210  tmp = LL_DMA2D_IsTransferOngoing(DMA2Dx);
211  tmp1 = LL_DMA2D_FGND_IsEnabledCLUTLoad(DMA2Dx);
212  tmp2 = LL_DMA2D_BGND_IsEnabledCLUTLoad(DMA2Dx);
213  if ((tmp == 0U) && (tmp1 == 0U) && (tmp2 == 0U))
214  {
215  /* DMA2D CR register configuration -------------------------------------------*/
216 #if defined(DMA2D_LINE_OFFSET_MODE_SUPPORT)
217  MODIFY_REG(DMA2Dx->CR, (DMA2D_CR_MODE | DMA2D_CR_LOM), \
218  (DMA2D_InitStruct->Mode | DMA2D_InitStruct->LineOffsetMode));
219 #else
220  LL_DMA2D_SetMode(DMA2Dx, DMA2D_InitStruct->Mode);
221 #endif /* DMA2D_LINE_OFFSET_MODE_SUPPORT */
222 
223  /* DMA2D OPFCCR register configuration ---------------------------------------*/
224  regMask = DMA2D_OPFCCR_CM;
225  regValue = DMA2D_InitStruct->ColorMode;
226 
227 #if defined(DMA2D_OUTPUT_TWO_BY_TWO_SWAP_SUPPORT)
228  regMask |= DMA2D_OPFCCR_SB;
229  regValue |= DMA2D_InitStruct->OutputSwapMode;
230 #endif /* DMA2D_OUTPUT_TWO_BY_TWO_SWAP_SUPPORT */
231 
232  regMask |= (DMA2D_OPFCCR_RBS | DMA2D_OPFCCR_AI);
233  regValue |= (DMA2D_InitStruct->AlphaInversionMode | DMA2D_InitStruct->RBSwapMode);
234 
235 
236  MODIFY_REG(DMA2Dx->OPFCCR, regMask, regValue);
237 
238  /* DMA2D OOR register configuration ------------------------------------------*/
239  LL_DMA2D_SetLineOffset(DMA2Dx, DMA2D_InitStruct->LineOffset);
240 
241  /* DMA2D NLR register configuration ------------------------------------------*/
242  LL_DMA2D_ConfigSize(DMA2Dx, DMA2D_InitStruct->NbrOfLines, DMA2D_InitStruct->NbrOfPixelsPerLines);
243 
244  /* DMA2D OMAR register configuration ------------------------------------------*/
245  LL_DMA2D_SetOutputMemAddr(DMA2Dx, DMA2D_InitStruct->OutputMemoryAddress);
246 
247  /* DMA2D OCOLR register configuration ------------------------------------------*/
248  DMA2D_ColorStruct.ColorMode = DMA2D_InitStruct->ColorMode;
249  DMA2D_ColorStruct.OutputBlue = DMA2D_InitStruct->OutputBlue;
250  DMA2D_ColorStruct.OutputGreen = DMA2D_InitStruct->OutputGreen;
251  DMA2D_ColorStruct.OutputRed = DMA2D_InitStruct->OutputRed;
252  DMA2D_ColorStruct.OutputAlpha = DMA2D_InitStruct->OutputAlpha;
253  LL_DMA2D_ConfigOutputColor(DMA2Dx, &DMA2D_ColorStruct);
254 
255  status = SUCCESS;
256  }
257  /* If DMA2D transfers are not disabled, return ERROR */
258 
259  return (status);
260 }
__STATIC_INLINE void LL_DMA2D_SetLineOffset(DMA2D_TypeDef *DMA2Dx, uint32_t LineOffset)
Set DMA2D line offset, expressed on 14 bits ([13:0] bits). OOR LO LL_DMA2D_SetLineOffset.
__STATIC_INLINE void LL_DMA2D_SetOutputMemAddr(DMA2D_TypeDef *DMA2Dx, uint32_t OutputMemoryAddress)
Set DMA2D output memory address, expressed on 32 bits ([31:0] bits). OMAR MA LL_DMA2D_SetOutputMemAd...
__STATIC_INLINE uint32_t LL_DMA2D_BGND_IsEnabledCLUTLoad(DMA2D_TypeDef *DMA2Dx)
Indicate if DMA2D background CLUT loading is enabled. BGPFCCR START LL_DMA2D_BGND_IsEnabledCLUTLoad...
__STATIC_INLINE uint32_t LL_DMA2D_IsTransferOngoing(DMA2D_TypeDef *DMA2Dx)
Indicate if a DMA2D transfer is ongoing. CR START LL_DMA2D_IsTransferOngoing.
void LL_DMA2D_ConfigOutputColor(DMA2D_TypeDef *DMA2Dx, LL_DMA2D_ColorTypeDef *DMA2D_ColorStruct)
Initialize DMA2D output color register according to the specified parameters in DMA2D_ColorStruct.
__STATIC_INLINE uint32_t LL_DMA2D_FGND_IsEnabledCLUTLoad(DMA2D_TypeDef *DMA2Dx)
Indicate if DMA2D foreground CLUT loading is enabled. FGPFCCR START LL_DMA2D_FGND_IsEnabledCLUTLoad...
void LL_DMA2D_ConfigSize(DMA2D_TypeDef *DMA2Dx, uint32_t NbrOfLines, uint32_t NbrOfPixelsPerLines)
Configure DMA2D transfer size.
MODIFY_REG(hrtc->Instance->CR, RTC_CR_WUCKSEL,(uint32_t) WakeUpClock)
LL DMA2D Output Color Structure Definition.
__STATIC_INLINE void LL_DMA2D_SetMode(DMA2D_TypeDef *DMA2Dx, uint32_t Mode)
Set DMA2D mode. CR MODE LL_DMA2D_SetMode.
assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock))

◆ LL_DMA2D_LayerCfgStructInit()

void LL_DMA2D_LayerCfgStructInit ( LL_DMA2D_LayerCfgTypeDef DMA2D_LayerCfg)

Set each LL_DMA2D_LayerCfgTypeDef field to default value.

Parameters
DMA2D_LayerCfgpointer to a LL_DMA2D_LayerCfgTypeDef structure whose fields will be set to default values.
Return values
None

Definition at line 374 of file stm32l4xx_ll_dma2d.c.

375 {
376  /* Set DMA2D_LayerCfg fields to default values */
377  DMA2D_LayerCfg->MemoryAddress = 0x0U;
378  DMA2D_LayerCfg->ColorMode = LL_DMA2D_INPUT_MODE_ARGB8888;
379  DMA2D_LayerCfg->LineOffset = 0x0U;
380  DMA2D_LayerCfg->CLUTColorMode = LL_DMA2D_CLUT_COLOR_MODE_ARGB8888;
381  DMA2D_LayerCfg->CLUTSize = 0x0U;
382  DMA2D_LayerCfg->AlphaMode = LL_DMA2D_ALPHA_MODE_NO_MODIF;
383  DMA2D_LayerCfg->Alpha = 0x0U;
384  DMA2D_LayerCfg->Blue = 0x0U;
385  DMA2D_LayerCfg->Green = 0x0U;
386  DMA2D_LayerCfg->Red = 0x0U;
387  DMA2D_LayerCfg->CLUTMemoryAddress = 0x0U;
388  DMA2D_LayerCfg->AlphaInversionMode = LL_DMA2D_ALPHA_REGULAR;
389  DMA2D_LayerCfg->RBSwapMode = LL_DMA2D_RB_MODE_REGULAR;
390 }

◆ LL_DMA2D_StructInit()

void LL_DMA2D_StructInit ( LL_DMA2D_InitTypeDef DMA2D_InitStruct)

Set each LL_DMA2D_InitTypeDef field to default value.

Parameters
DMA2D_InitStructpointer to a LL_DMA2D_InitTypeDef structure whose fields will be set to default values.
Return values
None

Definition at line 268 of file stm32l4xx_ll_dma2d.c.

269 {
270  /* Set DMA2D_InitStruct fields to default values */
271  DMA2D_InitStruct->Mode = LL_DMA2D_MODE_M2M;
272  DMA2D_InitStruct->ColorMode = LL_DMA2D_OUTPUT_MODE_ARGB8888;
273  DMA2D_InitStruct->NbrOfLines = 0x0U;
274  DMA2D_InitStruct->NbrOfPixelsPerLines = 0x0U;
275 #if defined(DMA2D_LINE_OFFSET_MODE_SUPPORT)
276  DMA2D_InitStruct->LineOffsetMode = LL_DMA2D_LINE_OFFSET_PIXELS;
277 #endif /* DMA2D_LINE_OFFSET_MODE_SUPPORT */
278  DMA2D_InitStruct->LineOffset = 0x0U;
279  DMA2D_InitStruct->OutputBlue = 0x0U;
280  DMA2D_InitStruct->OutputGreen = 0x0U;
281  DMA2D_InitStruct->OutputRed = 0x0U;
282  DMA2D_InitStruct->OutputAlpha = 0x0U;
283  DMA2D_InitStruct->OutputMemoryAddress = 0x0U;
284 #if defined(DMA2D_OUTPUT_TWO_BY_TWO_SWAP_SUPPORT)
285  DMA2D_InitStruct->OutputSwapMode = LL_DMA2D_SWAP_MODE_REGULAR;
286 #endif /* DMA2D_OUTPUT_TWO_BY_TWO_SWAP_SUPPORT */
287  DMA2D_InitStruct->AlphaInversionMode = LL_DMA2D_ALPHA_REGULAR;
288  DMA2D_InitStruct->RBSwapMode = LL_DMA2D_RB_MODE_REGULAR;
289 }