18 #if defined(USE_FULL_LL_DRIVER)
23 #ifdef USE_FULL_ASSERT
24 #include "stm32_assert.h"
26 #define assert_param(expr) ((void)0U)
45 #define LL_DMA2D_COLOR 0xFFU
46 #define LL_DMA2D_NUMBEROFLINES DMA2D_NLR_NL
47 #define LL_DMA2D_NUMBEROFPIXELS (DMA2D_NLR_PL >> DMA2D_NLR_PL_Pos)
48 #define LL_DMA2D_OFFSET_MAX 0x3FFFU
49 #define LL_DMA2D_CLUTSIZE_MAX 0xFFU
57 #define IS_LL_DMA2D_MODE(MODE) (((MODE) == LL_DMA2D_MODE_M2M) || \
58 ((MODE) == LL_DMA2D_MODE_M2M_PFC) || \
59 ((MODE) == LL_DMA2D_MODE_M2M_BLEND) || \
60 ((MODE) == LL_DMA2D_MODE_R2M))
62 #define IS_LL_DMA2D_OCMODE(MODE_ARGB) (((MODE_ARGB) == LL_DMA2D_OUTPUT_MODE_ARGB8888) || \
63 ((MODE_ARGB) == LL_DMA2D_OUTPUT_MODE_RGB888) || \
64 ((MODE_ARGB) == LL_DMA2D_OUTPUT_MODE_RGB565) || \
65 ((MODE_ARGB) == LL_DMA2D_OUTPUT_MODE_ARGB1555) || \
66 ((MODE_ARGB) == LL_DMA2D_OUTPUT_MODE_ARGB4444))
68 #define IS_LL_DMA2D_GREEN(GREEN) ((GREEN) <= LL_DMA2D_COLOR)
69 #define IS_LL_DMA2D_RED(RED) ((RED) <= LL_DMA2D_COLOR)
70 #define IS_LL_DMA2D_BLUE(BLUE) ((BLUE) <= LL_DMA2D_COLOR)
71 #define IS_LL_DMA2D_ALPHA(ALPHA) ((ALPHA) <= LL_DMA2D_COLOR)
74 #define IS_LL_DMA2D_OFFSET(OFFSET) ((OFFSET) <= LL_DMA2D_OFFSET_MAX)
76 #define IS_LL_DMA2D_LINE(LINES) ((LINES) <= LL_DMA2D_NUMBEROFLINES)
77 #define IS_LL_DMA2D_PIXEL(PIXELS) ((PIXELS) <= LL_DMA2D_NUMBEROFPIXELS)
81 #define IS_LL_DMA2D_LCMODE(MODE_ARGB) (((MODE_ARGB) == LL_DMA2D_INPUT_MODE_ARGB8888) || \
82 ((MODE_ARGB) == LL_DMA2D_INPUT_MODE_RGB888) || \
83 ((MODE_ARGB) == LL_DMA2D_INPUT_MODE_RGB565) || \
84 ((MODE_ARGB) == LL_DMA2D_INPUT_MODE_ARGB1555) || \
85 ((MODE_ARGB) == LL_DMA2D_INPUT_MODE_ARGB4444) || \
86 ((MODE_ARGB) == LL_DMA2D_INPUT_MODE_L8) || \
87 ((MODE_ARGB) == LL_DMA2D_INPUT_MODE_AL44) || \
88 ((MODE_ARGB) == LL_DMA2D_INPUT_MODE_AL88) || \
89 ((MODE_ARGB) == LL_DMA2D_INPUT_MODE_L4) || \
90 ((MODE_ARGB) == LL_DMA2D_INPUT_MODE_A8) || \
91 ((MODE_ARGB) == LL_DMA2D_INPUT_MODE_A4))
93 #define IS_LL_DMA2D_CLUTCMODE(CLUTCMODE) (((CLUTCMODE) == LL_DMA2D_CLUT_COLOR_MODE_ARGB8888) || \
94 ((CLUTCMODE) == LL_DMA2D_CLUT_COLOR_MODE_RGB888))
96 #define IS_LL_DMA2D_CLUTSIZE(SIZE) ((SIZE) <= LL_DMA2D_CLUTSIZE_MAX)
98 #define IS_LL_DMA2D_ALPHAMODE(MODE) (((MODE) == LL_DMA2D_ALPHA_MODE_NO_MODIF) || \
99 ((MODE) == LL_DMA2D_ALPHA_MODE_REPLACE) || \
100 ((MODE) == LL_DMA2D_ALPHA_MODE_COMBINE))
127 ErrorStatus status = SUCCESS;
130 assert_param(IS_DMA2D_ALL_INSTANCE(DMA2Dx));
161 ErrorStatus status = ERROR;
170 assert_param(IS_DMA2D_ALL_INSTANCE(DMA2Dx));
171 assert_param(IS_LL_DMA2D_MODE(DMA2D_InitStruct->
Mode));
172 assert_param(IS_LL_DMA2D_OCMODE(DMA2D_InitStruct->
ColorMode));
173 assert_param(IS_LL_DMA2D_LINE(DMA2D_InitStruct->
NbrOfLines));
175 assert_param(IS_LL_DMA2D_GREEN(DMA2D_InitStruct->
OutputGreen));
176 assert_param(IS_LL_DMA2D_RED(DMA2D_InitStruct->
OutputRed));
177 assert_param(IS_LL_DMA2D_BLUE(DMA2D_InitStruct->
OutputBlue));
178 assert_param(IS_LL_DMA2D_ALPHA(DMA2D_InitStruct->
OutputAlpha));
179 assert_param(IS_LL_DMA2D_OFFSET(DMA2D_InitStruct->
LineOffset));
185 if ((tmp == 0U) && (tmp1 == 0U) && (tmp2 == 0U))
191 regMask = DMA2D_OPFCCR_CM;
197 MODIFY_REG(DMA2Dx->OPFCCR, regMask, regValue);
232 DMA2D_InitStruct->
Mode = LL_DMA2D_MODE_M2M;
233 DMA2D_InitStruct->
ColorMode = LL_DMA2D_OUTPUT_MODE_ARGB8888;
258 assert_param(IS_LL_DMA2D_OFFSET(DMA2D_LayerCfg->
LineOffset));
259 assert_param(IS_LL_DMA2D_LCMODE(DMA2D_LayerCfg->
ColorMode));
260 assert_param(IS_LL_DMA2D_CLUTCMODE(DMA2D_LayerCfg->
CLUTColorMode));
261 assert_param(IS_LL_DMA2D_CLUTSIZE(DMA2D_LayerCfg->
CLUTSize));
262 assert_param(IS_LL_DMA2D_ALPHAMODE(DMA2D_LayerCfg->
AlphaMode));
263 assert_param(IS_LL_DMA2D_GREEN(DMA2D_LayerCfg->
Green));
264 assert_param(IS_LL_DMA2D_RED(DMA2D_LayerCfg->
Red));
265 assert_param(IS_LL_DMA2D_BLUE(DMA2D_LayerCfg->
Blue));
266 assert_param(IS_LL_DMA2D_ALPHA(DMA2D_LayerCfg->
Alpha));
278 MODIFY_REG(DMA2Dx->BGPFCCR, \
279 (DMA2D_BGPFCCR_ALPHA | DMA2D_BGPFCCR_AM | DMA2D_BGPFCCR_CS | DMA2D_BGPFCCR_CCM | DMA2D_BGPFCCR_CM), \
280 ((DMA2D_LayerCfg->
Alpha << DMA2D_BGPFCCR_ALPHA_Pos) | DMA2D_LayerCfg->
AlphaMode | \
299 MODIFY_REG(DMA2Dx->FGPFCCR, \
300 (DMA2D_FGPFCCR_ALPHA | DMA2D_FGPFCCR_AM | DMA2D_FGPFCCR_CS | DMA2D_FGPFCCR_CCM | DMA2D_FGPFCCR_CM), \
301 ((DMA2D_LayerCfg->
Alpha << DMA2D_FGPFCCR_ALPHA_Pos) | DMA2D_LayerCfg->
AlphaMode | \
323 DMA2D_LayerCfg->
ColorMode = LL_DMA2D_INPUT_MODE_ARGB8888;
325 DMA2D_LayerCfg->
CLUTColorMode = LL_DMA2D_CLUT_COLOR_MODE_ARGB8888;
327 DMA2D_LayerCfg->
AlphaMode = LL_DMA2D_ALPHA_MODE_NO_MODIF;
328 DMA2D_LayerCfg->
Alpha = 0x0U;
329 DMA2D_LayerCfg->
Blue = 0x0U;
330 DMA2D_LayerCfg->
Green = 0x0U;
331 DMA2D_LayerCfg->
Red = 0x0U;
350 assert_param(IS_DMA2D_ALL_INSTANCE(DMA2Dx));
351 assert_param(IS_LL_DMA2D_OCMODE(DMA2D_ColorStruct->
ColorMode));
352 assert_param(IS_LL_DMA2D_GREEN(DMA2D_ColorStruct->
OutputGreen));
353 assert_param(IS_LL_DMA2D_RED(DMA2D_ColorStruct->
OutputRed));
354 assert_param(IS_LL_DMA2D_BLUE(DMA2D_ColorStruct->
OutputBlue));
355 assert_param(IS_LL_DMA2D_ALPHA(DMA2D_ColorStruct->
OutputAlpha));
358 if (DMA2D_ColorStruct->
ColorMode == LL_DMA2D_OUTPUT_MODE_ARGB8888)
361 outred = DMA2D_ColorStruct->
OutputRed << 16U;
364 else if (DMA2D_ColorStruct->
ColorMode == LL_DMA2D_OUTPUT_MODE_RGB888)
367 outred = DMA2D_ColorStruct->
OutputRed << 16U;
368 outalpha = 0x00000000U;
370 else if (DMA2D_ColorStruct->
ColorMode == LL_DMA2D_OUTPUT_MODE_RGB565)
373 outred = DMA2D_ColorStruct->
OutputRed << 11U;
374 outalpha = 0x00000000U;
376 else if (DMA2D_ColorStruct->
ColorMode == LL_DMA2D_OUTPUT_MODE_ARGB1555)
379 outred = DMA2D_ColorStruct->
OutputRed << 10U;
385 outred = DMA2D_ColorStruct->
OutputRed << 8U;
407 assert_param(IS_DMA2D_ALL_INSTANCE(DMA2Dx));
408 assert_param(IS_LL_DMA2D_OCMODE(ColorMode));
411 if (ColorMode == LL_DMA2D_OUTPUT_MODE_ARGB8888)
413 color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0xFFU));
415 else if (ColorMode == LL_DMA2D_OUTPUT_MODE_RGB888)
417 color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0xFFU));
419 else if (ColorMode == LL_DMA2D_OUTPUT_MODE_RGB565)
421 color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0x1FU));
423 else if (ColorMode == LL_DMA2D_OUTPUT_MODE_ARGB1555)
425 color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0x1FU));
429 color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0xFU));
451 assert_param(IS_DMA2D_ALL_INSTANCE(DMA2Dx));
452 assert_param(IS_LL_DMA2D_OCMODE(ColorMode));
455 if (ColorMode == LL_DMA2D_OUTPUT_MODE_ARGB8888)
457 color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0xFF00U) >> 8U);
459 else if (ColorMode == LL_DMA2D_OUTPUT_MODE_RGB888)
461 color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0xFF00U) >> 8U);
463 else if (ColorMode == LL_DMA2D_OUTPUT_MODE_RGB565)
465 color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0x7E0U) >> 5U);
467 else if (ColorMode == LL_DMA2D_OUTPUT_MODE_ARGB1555)
469 color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0x3E0U) >> 5U);
473 color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0xF0U) >> 4U);
495 assert_param(IS_DMA2D_ALL_INSTANCE(DMA2Dx));
496 assert_param(IS_LL_DMA2D_OCMODE(ColorMode));
499 if (ColorMode == LL_DMA2D_OUTPUT_MODE_ARGB8888)
501 color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0xFF0000U) >> 16U);
503 else if (ColorMode == LL_DMA2D_OUTPUT_MODE_RGB888)
505 color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0xFF0000U) >> 16U);
507 else if (ColorMode == LL_DMA2D_OUTPUT_MODE_RGB565)
509 color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0xF800U) >> 11U);
511 else if (ColorMode == LL_DMA2D_OUTPUT_MODE_ARGB1555)
513 color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0x7C00U) >> 10U);
517 color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0xF00U) >> 8U);
539 assert_param(IS_DMA2D_ALL_INSTANCE(DMA2Dx));
540 assert_param(IS_LL_DMA2D_OCMODE(ColorMode));
543 if (ColorMode == LL_DMA2D_OUTPUT_MODE_ARGB8888)
545 color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0xFF000000U) >> 24U);
547 else if ((ColorMode == LL_DMA2D_OUTPUT_MODE_RGB888) || (ColorMode == LL_DMA2D_OUTPUT_MODE_RGB565))
551 else if (ColorMode == LL_DMA2D_OUTPUT_MODE_ARGB1555)
553 color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0x8000U) >> 15U);
557 color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0xF000U) >> 12U);
572 MODIFY_REG(DMA2Dx->NLR, (DMA2D_NLR_PL | DMA2D_NLR_NL), \
573 ((NbrOfPixelsPerLines << DMA2D_NLR_PL_Pos) | NbrOfLines));
__STATIC_INLINE void LL_AHB1_GRP1_ReleaseReset(uint32_t Periphs)
Release AHB1 peripherals reset. @rmtoll AHB1RSTR GPIOARST LL_AHB1_GRP1_ReleaseReset AHB1RSTR GPIOBRS...
__STATIC_INLINE void LL_AHB1_GRP1_ForceReset(uint32_t Periphs)
Force AHB1 peripherals reset. @rmtoll AHB1RSTR GPIOARST LL_AHB1_GRP1_ForceReset AHB1RSTR GPIOBRST LL...
__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). @rmtoll BGCOLR RED LL_DMA2D_BG...
__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). @rmtoll BGOR LO LL_DMA2D_BGND_S...
__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). @rmtoll BGMAR MA LL_DMA2D_BG...
__STATIC_INLINE uint32_t LL_DMA2D_BGND_IsEnabledCLUTLoad(DMA2D_TypeDef *DMA2Dx)
Indicate if DMA2D background CLUT loading is enabled. @rmtoll BGPFCCR START LL_DMA2D_BGND_IsEnabledCL...
__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). @rmtoll BGCMAR MA LL_DM...
__STATIC_INLINE void LL_DMA2D_SetOutputColor(DMA2D_TypeDef *DMA2Dx, uint32_t OutputColor)
Set DMA2D output color, expressed on 32 bits ([31:0] bits).
__STATIC_INLINE void LL_DMA2D_SetLineOffset(DMA2D_TypeDef *DMA2Dx, uint32_t LineOffset)
Set DMA2D line offset, expressed on 14 bits ([13:0] bits). @rmtoll OOR LO LL_DMA2D_SetLineOffset.
__STATIC_INLINE uint32_t LL_DMA2D_IsTransferOngoing(DMA2D_TypeDef *DMA2Dx)
Indicate if a DMA2D transfer is ongoing. @rmtoll CR START LL_DMA2D_IsTransferOngoing.
__STATIC_INLINE void LL_DMA2D_SetOutputMemAddr(DMA2D_TypeDef *DMA2Dx, uint32_t OutputMemoryAddress)
Set DMA2D output memory address, expressed on 32 bits ([31:0] bits). @rmtoll OMAR MA LL_DMA2D_SetOutp...
__STATIC_INLINE void LL_DMA2D_SetMode(DMA2D_TypeDef *DMA2Dx, uint32_t Mode)
Set DMA2D mode. @rmtoll CR MODE LL_DMA2D_SetMode.
__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). @rmtoll FGCMAR MA LL_DM...
__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). @rmtoll FGCOLR RED LL_DMA2D_FG...
__STATIC_INLINE uint32_t LL_DMA2D_FGND_IsEnabledCLUTLoad(DMA2D_TypeDef *DMA2Dx)
Indicate if DMA2D foreground CLUT loading is enabled. @rmtoll FGPFCCR START LL_DMA2D_FGND_IsEnabledCL...
__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). @rmtoll FGOR LO LL_DMA2D_FGND_S...
__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). @rmtoll FGMAR MA LL_DMA2D_FG...
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_LayerCfg...
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.
void LL_DMA2D_LayerCfgStructInit(LL_DMA2D_LayerCfgTypeDef *DMA2D_LayerCfg)
Set each LL_DMA2D_LayerCfgTypeDef field to default value.
uint32_t LL_DMA2D_GetOutputRedColor(DMA2D_TypeDef *DMA2Dx, uint32_t ColorMode)
Return DMA2D output Red color.
ErrorStatus LL_DMA2D_Init(DMA2D_TypeDef *DMA2Dx, LL_DMA2D_InitTypeDef *DMA2D_InitStruct)
Initialize DMA2D registers according to the specified parameters in DMA2D_InitStruct.
void LL_DMA2D_StructInit(LL_DMA2D_InitTypeDef *DMA2D_InitStruct)
Set each LL_DMA2D_InitTypeDef field to default value.
ErrorStatus LL_DMA2D_DeInit(DMA2D_TypeDef *DMA2Dx)
De-initialize DMA2D registers (registers restored to their default values).
uint32_t LL_DMA2D_GetOutputBlueColor(DMA2D_TypeDef *DMA2Dx, uint32_t ColorMode)
Return DMA2D output Blue color.
uint32_t LL_DMA2D_GetOutputAlphaColor(DMA2D_TypeDef *DMA2Dx, uint32_t ColorMode)
Return DMA2D output Alpha color.
void LL_DMA2D_ConfigSize(DMA2D_TypeDef *DMA2Dx, uint32_t NbrOfLines, uint32_t NbrOfPixelsPerLines)
Configure DMA2D transfer size.
uint32_t LL_DMA2D_GetOutputGreenColor(DMA2D_TypeDef *DMA2Dx, uint32_t ColorMode)
Return DMA2D output Green color.
uint32_t OutputMemoryAddress
uint32_t CLUTMemoryAddress
uint32_t NbrOfPixelsPerLines
LL DMA2D Output Color Structure Definition.
LL DMA2D Init Structure Definition.
LL DMA2D Layer Configuration Structure Definition.
Header file of BUS LL module.
Header file of DMA2D LL module.