19 #if defined(USE_FULL_LL_DRIVER) 24 #ifdef USE_FULL_ASSERT 25 #include "stm32_assert.h" 27 #define assert_param(expr) ((void)0U) 46 #define LL_DMA2D_COLOR 0xFFU 47 #define LL_DMA2D_NUMBEROFLINES DMA2D_NLR_NL 48 #define LL_DMA2D_NUMBEROFPIXELS (DMA2D_NLR_PL >> DMA2D_NLR_PL_Pos) 49 #define LL_DMA2D_OFFSET_MAX 0x3FFFU 50 #define LL_DMA2D_CLUTSIZE_MAX 0xFFU 58 #if defined(DMA2D_M2M_BLEND_FIXED_COLOR_FG_BG_SUPPORT) 59 #define IS_LL_DMA2D_MODE(MODE) (((MODE) == LL_DMA2D_MODE_M2M) || \ 60 ((MODE) == LL_DMA2D_MODE_M2M_PFC) || \ 61 ((MODE) == LL_DMA2D_MODE_M2M_BLEND) || \ 62 ((MODE) == LL_DMA2D_MODE_M2M_BLEND_FIXED_COLOR_FG) || \ 63 ((MODE) == LL_DMA2D_MODE_M2M_BLEND_FIXED_COLOR_BG) || \ 64 ((MODE) == LL_DMA2D_MODE_R2M)) 66 #define IS_LL_DMA2D_MODE(MODE) (((MODE) == LL_DMA2D_MODE_M2M) || \ 67 ((MODE) == LL_DMA2D_MODE_M2M_PFC) || \ 68 ((MODE) == LL_DMA2D_MODE_M2M_BLEND) || \ 69 ((MODE) == LL_DMA2D_MODE_R2M)) 72 #define IS_LL_DMA2D_OCMODE(MODE_ARGB) (((MODE_ARGB) == LL_DMA2D_OUTPUT_MODE_ARGB8888) || \ 73 ((MODE_ARGB) == LL_DMA2D_OUTPUT_MODE_RGB888) || \ 74 ((MODE_ARGB) == LL_DMA2D_OUTPUT_MODE_RGB565) || \ 75 ((MODE_ARGB) == LL_DMA2D_OUTPUT_MODE_ARGB1555) || \ 76 ((MODE_ARGB) == LL_DMA2D_OUTPUT_MODE_ARGB4444)) 78 #define IS_LL_DMA2D_GREEN(GREEN) ((GREEN) <= LL_DMA2D_COLOR) 79 #define IS_LL_DMA2D_RED(RED) ((RED) <= LL_DMA2D_COLOR) 80 #define IS_LL_DMA2D_BLUE(BLUE) ((BLUE) <= LL_DMA2D_COLOR) 81 #define IS_LL_DMA2D_ALPHA(ALPHA) ((ALPHA) <= LL_DMA2D_COLOR) 83 #if defined(DMA2D_LINE_OFFSET_MODE_SUPPORT) 84 #define IS_LL_DMA2D_OFFSET_MODE(MODE) (((MODE) == LL_DMA2D_LINE_OFFSET_PIXELS) || \ 85 ((MODE) == LL_DMA2D_LINE_OFFSET_BYTES)) 88 #define IS_LL_DMA2D_OFFSET(OFFSET) ((OFFSET) <= LL_DMA2D_OFFSET_MAX) 90 #define IS_LL_DMA2D_LINE(LINES) ((LINES) <= LL_DMA2D_NUMBEROFLINES) 91 #define IS_LL_DMA2D_PIXEL(PIXELS) ((PIXELS) <= LL_DMA2D_NUMBEROFPIXELS) 93 #if defined(DMA2D_OUTPUT_TWO_BY_TWO_SWAP_SUPPORT) 94 #define IS_LL_DMA2D_SWAP_MODE(MODE) (((MODE) == LL_DMA2D_SWAP_MODE_REGULAR) || \ 95 ((MODE) == LL_DMA2D_SWAP_MODE_TWO_BY_TWO)) 98 #define IS_LL_DMA2D_ALPHAINV(ALPHA) (((ALPHA) == LL_DMA2D_ALPHA_REGULAR) || \ 99 ((ALPHA) == LL_DMA2D_ALPHA_INVERTED)) 101 #define IS_LL_DMA2D_RBSWAP(RBSWAP) (((RBSWAP) == LL_DMA2D_RB_MODE_REGULAR) || \ 102 ((RBSWAP) == LL_DMA2D_RB_MODE_SWAP)) 104 #define IS_LL_DMA2D_LCMODE(MODE_ARGB) (((MODE_ARGB) == LL_DMA2D_INPUT_MODE_ARGB8888) || \ 105 ((MODE_ARGB) == LL_DMA2D_INPUT_MODE_RGB888) || \ 106 ((MODE_ARGB) == LL_DMA2D_INPUT_MODE_RGB565) || \ 107 ((MODE_ARGB) == LL_DMA2D_INPUT_MODE_ARGB1555) || \ 108 ((MODE_ARGB) == LL_DMA2D_INPUT_MODE_ARGB4444) || \ 109 ((MODE_ARGB) == LL_DMA2D_INPUT_MODE_L8) || \ 110 ((MODE_ARGB) == LL_DMA2D_INPUT_MODE_AL44) || \ 111 ((MODE_ARGB) == LL_DMA2D_INPUT_MODE_AL88) || \ 112 ((MODE_ARGB) == LL_DMA2D_INPUT_MODE_L4) || \ 113 ((MODE_ARGB) == LL_DMA2D_INPUT_MODE_A8) || \ 114 ((MODE_ARGB) == LL_DMA2D_INPUT_MODE_A4)) 116 #define IS_LL_DMA2D_CLUTCMODE(CLUTCMODE) (((CLUTCMODE) == LL_DMA2D_CLUT_COLOR_MODE_ARGB8888) || \ 117 ((CLUTCMODE) == LL_DMA2D_CLUT_COLOR_MODE_RGB888)) 119 #define IS_LL_DMA2D_CLUTSIZE(SIZE) ((SIZE) <= LL_DMA2D_CLUTSIZE_MAX) 121 #define IS_LL_DMA2D_ALPHAMODE(MODE) (((MODE) == LL_DMA2D_ALPHA_MODE_NO_MODIF) || \ 122 ((MODE) == LL_DMA2D_ALPHA_MODE_REPLACE) || \ 123 ((MODE) == LL_DMA2D_ALPHA_MODE_COMBINE)) 150 ErrorStatus status = SUCCESS;
184 ErrorStatus status = ERROR;
186 uint32_t tmp, tmp1, tmp2;
187 uint32_t regMask, regValue;
199 #if defined(DMA2D_OUTPUT_TWO_BY_TWO_SWAP_SUPPORT) 202 #if defined(DMA2D_LINE_OFFSET_MODE_SUPPORT) 213 if ((tmp == 0U) && (tmp1 == 0U) && (tmp2 == 0U))
216 #if defined(DMA2D_LINE_OFFSET_MODE_SUPPORT) 217 MODIFY_REG(DMA2Dx->CR, (DMA2D_CR_MODE | DMA2D_CR_LOM), \
224 regMask = DMA2D_OPFCCR_CM;
227 #if defined(DMA2D_OUTPUT_TWO_BY_TWO_SWAP_SUPPORT) 228 regMask |= DMA2D_OPFCCR_SB;
232 regMask |= (DMA2D_OPFCCR_RBS | DMA2D_OPFCCR_AI);
236 MODIFY_REG(DMA2Dx->OPFCCR, regMask, regValue);
271 DMA2D_InitStruct->
Mode = LL_DMA2D_MODE_M2M;
272 DMA2D_InitStruct->
ColorMode = LL_DMA2D_OUTPUT_MODE_ARGB8888;
275 #if defined(DMA2D_LINE_OFFSET_MODE_SUPPORT) 284 #if defined(DMA2D_OUTPUT_TWO_BY_TWO_SWAP_SUPPORT) 288 DMA2D_InitStruct->
RBSwapMode = LL_DMA2D_RB_MODE_REGULAR;
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 | \
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 | \
378 DMA2D_LayerCfg->
ColorMode = LL_DMA2D_INPUT_MODE_ARGB8888;
380 DMA2D_LayerCfg->
CLUTColorMode = LL_DMA2D_CLUT_COLOR_MODE_ARGB8888;
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;
389 DMA2D_LayerCfg->
RBSwapMode = LL_DMA2D_RB_MODE_REGULAR;
415 if (DMA2D_ColorStruct->
ColorMode == LL_DMA2D_OUTPUT_MODE_ARGB8888)
418 outred = DMA2D_ColorStruct->
OutputRed << 16U;
421 else if (DMA2D_ColorStruct->
ColorMode == LL_DMA2D_OUTPUT_MODE_RGB888)
424 outred = DMA2D_ColorStruct->
OutputRed << 16U;
425 outalpha = 0x00000000U;
427 else if (DMA2D_ColorStruct->
ColorMode == LL_DMA2D_OUTPUT_MODE_RGB565)
430 outred = DMA2D_ColorStruct->
OutputRed << 11U;
431 outalpha = 0x00000000U;
433 else if (DMA2D_ColorStruct->
ColorMode == LL_DMA2D_OUTPUT_MODE_ARGB1555)
436 outred = DMA2D_ColorStruct->
OutputRed << 10U;
442 outred = DMA2D_ColorStruct->
OutputRed << 8U;
468 if (ColorMode == LL_DMA2D_OUTPUT_MODE_ARGB8888)
470 color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0xFFU));
472 else if (ColorMode == LL_DMA2D_OUTPUT_MODE_RGB888)
474 color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0xFFU));
476 else if (ColorMode == LL_DMA2D_OUTPUT_MODE_RGB565)
478 color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0x1FU));
480 else if (ColorMode == LL_DMA2D_OUTPUT_MODE_ARGB1555)
482 color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0x1FU));
486 color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0xFU));
512 if (ColorMode == LL_DMA2D_OUTPUT_MODE_ARGB8888)
514 color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0xFF00U) >> 8U);
516 else if (ColorMode == LL_DMA2D_OUTPUT_MODE_RGB888)
518 color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0xFF00U) >> 8U);
520 else if (ColorMode == LL_DMA2D_OUTPUT_MODE_RGB565)
522 color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0x7E0U) >> 5U);
524 else if (ColorMode == LL_DMA2D_OUTPUT_MODE_ARGB1555)
526 color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0x3E0U) >> 5U);
530 color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0xF0U) >> 4U);
556 if (ColorMode == LL_DMA2D_OUTPUT_MODE_ARGB8888)
558 color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0xFF0000U) >> 16U);
560 else if (ColorMode == LL_DMA2D_OUTPUT_MODE_RGB888)
562 color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0xFF0000U) >> 16U);
564 else if (ColorMode == LL_DMA2D_OUTPUT_MODE_RGB565)
566 color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0xF800U) >> 11U);
568 else if (ColorMode == LL_DMA2D_OUTPUT_MODE_ARGB1555)
570 color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0x7C00U) >> 10U);
574 color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0xF00U) >> 8U);
600 if (ColorMode == LL_DMA2D_OUTPUT_MODE_ARGB8888)
602 color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0xFF000000U) >> 24U);
604 else if ((ColorMode == LL_DMA2D_OUTPUT_MODE_RGB888) || (ColorMode == LL_DMA2D_OUTPUT_MODE_RGB565))
608 else if (ColorMode == LL_DMA2D_OUTPUT_MODE_ARGB1555)
610 color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0x8000U) >> 15U);
614 color = (uint32_t)(READ_BIT(DMA2Dx->OCOLR, 0xF000U) >> 12U);
629 MODIFY_REG(DMA2Dx->NLR, (DMA2D_NLR_PL | DMA2D_NLR_NL), \
630 ((NbrOfPixelsPerLines << DMA2D_NLR_PL_Pos) | NbrOfLines));
__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.
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...
Header file of DMA2D LL module.
ErrorStatus LL_DMA2D_DeInit(DMA2D_TypeDef *DMA2Dx)
De-initialize DMA2D registers (registers restored to their default values).
uint32_t LL_DMA2D_GetOutputAlphaColor(DMA2D_TypeDef *DMA2Dx, uint32_t ColorMode)
Return DMA2D output Alpha color.
__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...
LL DMA2D Layer Configuration Structure Definition.
__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...
void LL_DMA2D_StructInit(LL_DMA2D_InitTypeDef *DMA2D_InitStruct)
Set each LL_DMA2D_InitTypeDef field to default value.
__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 uint32_t LL_DMA2D_BGND_IsEnabledCLUTLoad(DMA2D_TypeDef *DMA2Dx)
Indicate if DMA2D background CLUT loading is enabled. BGPFCCR START LL_DMA2D_BGND_IsEnabledCLUTLoad...
uint32_t CLUTMemoryAddress
__STATIC_INLINE uint32_t LL_DMA2D_IsTransferOngoing(DMA2D_TypeDef *DMA2Dx)
Indicate if a DMA2D transfer is ongoing. CR START LL_DMA2D_IsTransferOngoing.
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_ConfigOutputColor(DMA2D_TypeDef *DMA2Dx, LL_DMA2D_ColorTypeDef *DMA2D_ColorStruct)
Initialize DMA2D output color register according to the specified parameters in DMA2D_ColorStruct.
uint32_t OutputMemoryAddress
uint32_t AlphaInversionMode
__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...
LL DMA2D Init Structure Definition.
uint32_t LL_DMA2D_GetOutputRedColor(DMA2D_TypeDef *DMA2Dx, uint32_t ColorMode)
Return DMA2D output Red color.
__STATIC_INLINE void LL_DMA2D_SetOutputColor(DMA2D_TypeDef *DMA2Dx, uint32_t OutputColor)
Set DMA2D output color, expressed on 32 bits ([31:0] bits).
Header file of BUS LL module.
__STATIC_INLINE void LL_AHB1_GRP1_ReleaseReset(uint32_t Periphs)
Release AHB1 peripherals reset. AHB1RSTR DMA1RST LL_AHB1_GRP1_ReleaseReset AHB1RSTR DMA2RST LL_AHB1...
__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.
__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...
LL DMA2D Output Color Structure Definition.
void LL_DMA2D_LayerCfgStructInit(LL_DMA2D_LayerCfgTypeDef *DMA2D_LayerCfg)
Set each LL_DMA2D_LayerCfgTypeDef field to default value.
uint32_t NbrOfPixelsPerLines
uint32_t AlphaInversionMode
__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...
__STATIC_INLINE void LL_DMA2D_SetMode(DMA2D_TypeDef *DMA2Dx, uint32_t Mode)
Set DMA2D mode. CR MODE LL_DMA2D_SetMode.
uint32_t LL_DMA2D_GetOutputBlueColor(DMA2D_TypeDef *DMA2Dx, uint32_t ColorMode)
Return DMA2D output Blue color.
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...
uint32_t LL_DMA2D_GetOutputGreenColor(DMA2D_TypeDef *DMA2Dx, uint32_t ColorMode)
Return DMA2D output Green color.