21 #ifndef STM32L4xx_HAL_DMA2D_H 22 #define STM32L4xx_HAL_DMA2D_H 45 #define MAX_DMA2D_LAYER 2U 97 #if defined(DMA2D_OUTPUT_TWO_BY_TWO_SWAP_SUPPORT) 102 #if defined(DMA2D_LINE_OFFSET_MODE_SUPPORT) 167 #if (USE_HAL_DMA2D_REGISTER_CALLBACKS == 1) 187 #if (USE_HAL_DMA2D_REGISTER_CALLBACKS == 1) 205 #define HAL_DMA2D_ERROR_NONE 0x00000000U 206 #define HAL_DMA2D_ERROR_TE 0x00000001U 207 #define HAL_DMA2D_ERROR_CE 0x00000002U 208 #define HAL_DMA2D_ERROR_CAE 0x00000004U 209 #define HAL_DMA2D_ERROR_TIMEOUT 0x00000020U 210 #if (USE_HAL_DMA2D_REGISTER_CALLBACKS == 1) 211 #define HAL_DMA2D_ERROR_INVALID_CALLBACK 0x00000040U 221 #define DMA2D_M2M 0x00000000U 222 #define DMA2D_M2M_PFC DMA2D_CR_MODE_0 223 #define DMA2D_M2M_BLEND DMA2D_CR_MODE_1 224 #define DMA2D_R2M (DMA2D_CR_MODE_1 | DMA2D_CR_MODE_0) 225 #if defined(DMA2D_M2M_BLEND_FIXED_COLOR_FG_BG_SUPPORT) 226 #define DMA2D_M2M_BLEND_FG DMA2D_CR_MODE_2 227 #define DMA2D_M2M_BLEND_BG (DMA2D_CR_MODE_2 | DMA2D_CR_MODE_0) 236 #define DMA2D_OUTPUT_ARGB8888 0x00000000U 237 #define DMA2D_OUTPUT_RGB888 DMA2D_OPFCCR_CM_0 238 #define DMA2D_OUTPUT_RGB565 DMA2D_OPFCCR_CM_1 239 #define DMA2D_OUTPUT_ARGB1555 (DMA2D_OPFCCR_CM_0|DMA2D_OPFCCR_CM_1) 240 #define DMA2D_OUTPUT_ARGB4444 DMA2D_OPFCCR_CM_2 248 #define DMA2D_INPUT_ARGB8888 0x00000000U 249 #define DMA2D_INPUT_RGB888 0x00000001U 250 #define DMA2D_INPUT_RGB565 0x00000002U 251 #define DMA2D_INPUT_ARGB1555 0x00000003U 252 #define DMA2D_INPUT_ARGB4444 0x00000004U 253 #define DMA2D_INPUT_L8 0x00000005U 254 #define DMA2D_INPUT_AL44 0x00000006U 255 #define DMA2D_INPUT_AL88 0x00000007U 256 #define DMA2D_INPUT_L4 0x00000008U 257 #define DMA2D_INPUT_A8 0x00000009U 258 #define DMA2D_INPUT_A4 0x0000000AU 266 #define DMA2D_NO_MODIF_ALPHA 0x00000000U 267 #define DMA2D_REPLACE_ALPHA 0x00000001U 268 #define DMA2D_COMBINE_ALPHA 0x00000002U 277 #define DMA2D_REGULAR_ALPHA 0x00000000U 278 #define DMA2D_INVERTED_ALPHA 0x00000001U 286 #define DMA2D_RB_REGULAR 0x00000000U 287 #define DMA2D_RB_SWAP 0x00000001U 294 #if defined(DMA2D_LINE_OFFSET_MODE_SUPPORT) 298 #define DMA2D_LOM_PIXELS 0x00000000U 299 #define DMA2D_LOM_BYTES DMA2D_CR_LOM 305 #if defined(DMA2D_OUTPUT_TWO_BY_TWO_SWAP_SUPPORT) 309 #define DMA2D_BYTES_REGULAR 0x00000000U 310 #define DMA2D_BYTES_SWAP DMA2D_OPFCCR_SB 320 #define DMA2D_CCM_ARGB8888 0x00000000U 321 #define DMA2D_CCM_RGB888 0x00000001U 329 #define DMA2D_IT_CE DMA2D_CR_CEIE 330 #define DMA2D_IT_CTC DMA2D_CR_CTCIE 331 #define DMA2D_IT_CAE DMA2D_CR_CAEIE 332 #define DMA2D_IT_TW DMA2D_CR_TWIE 333 #define DMA2D_IT_TC DMA2D_CR_TCIE 334 #define DMA2D_IT_TE DMA2D_CR_TEIE 342 #define DMA2D_FLAG_CE DMA2D_ISR_CEIF 343 #define DMA2D_FLAG_CTC DMA2D_ISR_CTCIF 344 #define DMA2D_FLAG_CAE DMA2D_ISR_CAEIF 345 #define DMA2D_FLAG_TW DMA2D_ISR_TWIF 346 #define DMA2D_FLAG_TC DMA2D_ISR_TCIF 347 #define DMA2D_FLAG_TE DMA2D_ISR_TEIF 355 #define HAL_DMA2D_DisableCLUT HAL_DMA2D_CLUTLoading_Abort 360 #if (USE_HAL_DMA2D_REGISTER_CALLBACKS == 1) 388 #if (USE_HAL_DMA2D_REGISTER_CALLBACKS == 1) 389 #define __HAL_DMA2D_RESET_HANDLE_STATE(__HANDLE__) do{ \ 390 (__HANDLE__)->State = HAL_DMA2D_STATE_RESET;\ 391 (__HANDLE__)->MspInitCallback = NULL; \ 392 (__HANDLE__)->MspDeInitCallback = NULL; \ 395 #define __HAL_DMA2D_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_DMA2D_STATE_RESET) 404 #define __HAL_DMA2D_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= DMA2D_CR_START) 421 #define __HAL_DMA2D_GET_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ISR & (__FLAG__)) 436 #define __HAL_DMA2D_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->IFCR = (__FLAG__)) 451 #define __HAL_DMA2D_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR |= (__INTERRUPT__)) 466 #define __HAL_DMA2D_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR &= ~(__INTERRUPT__)) 481 #define __HAL_DMA2D_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR & (__INTERRUPT__)) 502 #if (USE_HAL_DMA2D_REGISTER_CALLBACKS == 1) 580 #define DMA2D_LINE_WATERMARK_MAX DMA2D_LWR_LW 588 #define DMA2D_COLOR_VALUE 0x000000FFU 596 #define DMA2D_MAX_LAYER 2U 604 #define DMA2D_BACKGROUND_LAYER 0x00000000U 605 #define DMA2D_FOREGROUND_LAYER 0x00000001U 613 #define DMA2D_OFFSET DMA2D_FGOR_LO 621 #define DMA2D_PIXEL (DMA2D_NLR_PL >> 16U) 622 #define DMA2D_LINE DMA2D_NLR_NL 630 #define DMA2D_CLUT_SIZE (DMA2D_FGPFCCR_CS >> 8U) 644 #define IS_DMA2D_LAYER(LAYER) (((LAYER) == DMA2D_BACKGROUND_LAYER) || ((LAYER) == DMA2D_FOREGROUND_LAYER)) 646 #if defined(DMA2D_M2M_BLEND_FIXED_COLOR_FG_BG_SUPPORT) 647 #define IS_DMA2D_MODE(MODE) (((MODE) == DMA2D_M2M) || ((MODE) == DMA2D_M2M_PFC) || \ 648 ((MODE) == DMA2D_M2M_BLEND) || ((MODE) == DMA2D_R2M) || \ 649 ((MODE) == DMA2D_M2M_BLEND_FG) || ((MODE) == DMA2D_M2M_BLEND_BG)) 651 #define IS_DMA2D_MODE(MODE) (((MODE) == DMA2D_M2M) || ((MODE) == DMA2D_M2M_PFC) || \ 652 ((MODE) == DMA2D_M2M_BLEND) || ((MODE) == DMA2D_R2M)) 655 #define IS_DMA2D_CMODE(MODE_ARGB) (((MODE_ARGB) == DMA2D_OUTPUT_ARGB8888) || ((MODE_ARGB) == DMA2D_OUTPUT_RGB888) || \ 656 ((MODE_ARGB) == DMA2D_OUTPUT_RGB565) || ((MODE_ARGB) == DMA2D_OUTPUT_ARGB1555) || \ 657 ((MODE_ARGB) == DMA2D_OUTPUT_ARGB4444)) 659 #define IS_DMA2D_COLOR(COLOR) ((COLOR) <= DMA2D_COLOR_VALUE) 660 #define IS_DMA2D_LINE(LINE) ((LINE) <= DMA2D_LINE) 661 #define IS_DMA2D_PIXEL(PIXEL) ((PIXEL) <= DMA2D_PIXEL) 662 #define IS_DMA2D_OFFSET(OOFFSET) ((OOFFSET) <= DMA2D_OFFSET) 664 #define IS_DMA2D_INPUT_COLOR_MODE(INPUT_CM) (((INPUT_CM) == DMA2D_INPUT_ARGB8888) || ((INPUT_CM) == DMA2D_INPUT_RGB888) || \ 665 ((INPUT_CM) == DMA2D_INPUT_RGB565) || ((INPUT_CM) == DMA2D_INPUT_ARGB1555) || \ 666 ((INPUT_CM) == DMA2D_INPUT_ARGB4444) || ((INPUT_CM) == DMA2D_INPUT_L8) || \ 667 ((INPUT_CM) == DMA2D_INPUT_AL44) || ((INPUT_CM) == DMA2D_INPUT_AL88) || \ 668 ((INPUT_CM) == DMA2D_INPUT_L4) || ((INPUT_CM) == DMA2D_INPUT_A8) || \ 669 ((INPUT_CM) == DMA2D_INPUT_A4)) 671 #define IS_DMA2D_ALPHA_MODE(AlphaMode) (((AlphaMode) == DMA2D_NO_MODIF_ALPHA) || \ 672 ((AlphaMode) == DMA2D_REPLACE_ALPHA) || \ 673 ((AlphaMode) == DMA2D_COMBINE_ALPHA)) 675 #define IS_DMA2D_ALPHA_INVERTED(Alpha_Inverted) (((Alpha_Inverted) == DMA2D_REGULAR_ALPHA) || \ 676 ((Alpha_Inverted) == DMA2D_INVERTED_ALPHA)) 678 #define IS_DMA2D_RB_SWAP(RB_Swap) (((RB_Swap) == DMA2D_RB_REGULAR) || \ 679 ((RB_Swap) == DMA2D_RB_SWAP)) 681 #if defined(DMA2D_LINE_OFFSET_MODE_SUPPORT) 682 #define IS_DMA2D_LOM_MODE(LOM) (((LOM) == DMA2D_LOM_PIXELS) || \ 683 ((LOM) == DMA2D_LOM_BYTES)) 686 #if defined(DMA2D_OUTPUT_TWO_BY_TWO_SWAP_SUPPORT) 687 #define IS_DMA2D_BYTES_SWAP(BYTES_SWAP) (((BYTES_SWAP) == DMA2D_BYTES_REGULAR) || \ 688 ((BYTES_SWAP) == DMA2D_BYTES_SWAP)) 692 #define IS_DMA2D_CLUT_CM(CLUT_CM) (((CLUT_CM) == DMA2D_CCM_ARGB8888) || ((CLUT_CM) == DMA2D_CCM_RGB888)) 693 #define IS_DMA2D_CLUT_SIZE(CLUT_SIZE) ((CLUT_SIZE) <= DMA2D_CLUT_SIZE) 694 #define IS_DMA2D_LINEWATERMARK(LineWatermark) ((LineWatermark) <= DMA2D_LINE_WATERMARK_MAX) 695 #define IS_DMA2D_IT(IT) (((IT) == DMA2D_IT_CTC) || ((IT) == DMA2D_IT_CAE) || \ 696 ((IT) == DMA2D_IT_TW) || ((IT) == DMA2D_IT_TC) || \ 697 ((IT) == DMA2D_IT_TE) || ((IT) == DMA2D_IT_CE)) 698 #define IS_DMA2D_GET_FLAG(FLAG) (((FLAG) == DMA2D_FLAG_CTC) || ((FLAG) == DMA2D_FLAG_CAE) || \ 699 ((FLAG) == DMA2D_FLAG_TW) || ((FLAG) == DMA2D_FLAG_TC) || \ 700 ((FLAG) == DMA2D_FLAG_TE) || ((FLAG) == DMA2D_FLAG_CE)) HAL_DMA2D_CallbackIDTypeDef
HAL DMA2D common Callback ID enumeration definition.
DMA2D_LayerCfgTypeDef LayerCfg[MAX_DMA2D_LAYER]
void HAL_DMA2D_MspDeInit(DMA2D_HandleTypeDef *hdma2d)
DeInitializes the DMA2D MSP.
HAL_DMA2D_StateTypeDef HAL_DMA2D_GetState(DMA2D_HandleTypeDef *hdma2d)
Return the DMA2D state.
HAL_StatusTypeDef HAL_DMA2D_CLUTLoading_Abort(DMA2D_HandleTypeDef *hdma2d, uint32_t LayerIdx)
Abort the DMA2D CLUT loading.
HAL_StatusTypeDef HAL_DMA2D_CLUTLoading_Resume(DMA2D_HandleTypeDef *hdma2d, uint32_t LayerIdx)
Resume the DMA2D CLUT loading.
DMA2D Init structure definition.
HAL_StatusTypeDef HAL_DMA2D_BlendingStart_IT(DMA2D_HandleTypeDef *hdma2d, uint32_t SrcAddress1, uint32_t SrcAddress2, uint32_t DstAddress, uint32_t Width, uint32_t Height)
Start the multi-source DMA2D Transfer with interrupt enabled.
HAL_StatusTypeDef HAL_DMA2D_CLUTLoading_Suspend(DMA2D_HandleTypeDef *hdma2d, uint32_t LayerIdx)
Suspend the DMA2D CLUT loading.
HAL_StatusTypeDef HAL_DMA2D_PollForTransfer(DMA2D_HandleTypeDef *hdma2d, uint32_t Timeout)
Polling for transfer complete or CLUT loading.
HAL_StatusTypeDef HAL_DMA2D_Start_IT(DMA2D_HandleTypeDef *hdma2d, uint32_t pdata, uint32_t DstAddress, uint32_t Width, uint32_t Height)
Start the DMA2D Transfer with interrupt enabled.
void HAL_DMA2D_MspInit(DMA2D_HandleTypeDef *hdma2d)
Initializes the DMA2D MSP.
DMA2D handle Structure definition.
HAL_StatusTypeDef HAL_DMA2D_Start(DMA2D_HandleTypeDef *hdma2d, uint32_t pdata, uint32_t DstAddress, uint32_t Width, uint32_t Height)
Start the DMA2D Transfer.
HAL_StatusTypeDef HAL_DMA2D_Resume(DMA2D_HandleTypeDef *hdma2d)
Resume the DMA2D Transfer.
DMA2D CLUT Structure definition.
HAL_StatusTypeDef HAL_DMA2D_Init(DMA2D_HandleTypeDef *hdma2d)
Initialize the DMA2D according to the specified parameters in the DMA2D_InitTypeDef and create the as...
HAL_StatusTypeDef HAL_DMA2D_ConfigLayer(DMA2D_HandleTypeDef *hdma2d, uint32_t LayerIdx)
Configure the DMA2D Layer according to the specified parameters in the DMA2D_HandleTypeDef.
HAL_StatusTypeDef HAL_DMA2D_BlendingStart(DMA2D_HandleTypeDef *hdma2d, uint32_t SrcAddress1, uint32_t SrcAddress2, uint32_t DstAddress, uint32_t Width, uint32_t Height)
Start the multi-source DMA2D Transfer.
HAL_StatusTypeDef HAL_DMA2D_Suspend(DMA2D_HandleTypeDef *hdma2d)
Suspend the DMA2D Transfer.
void(* MspDeInitCallback)(struct __DMA2D_HandleTypeDef *hdma2d)
This file contains HAL common defines, enumeration, macros and structures definitions.
void(* pDMA2D_CallbackTypeDef)(DMA2D_HandleTypeDef *hdma2d)
HAL DMA2D Callback pointer definition.
HAL_StatusTypeDef HAL_DMA2D_EnableDeadTime(DMA2D_HandleTypeDef *hdma2d)
Enable DMA2D dead time feature.
struct __DMA2D_HandleTypeDef DMA2D_HandleTypeDef
DMA2D handle Structure definition.
HAL_StatusTypeDef HAL_DMA2D_DeInit(DMA2D_HandleTypeDef *hdma2d)
Deinitializes the DMA2D peripheral registers to their default reset values.
HAL_StatusTypeDef HAL_DMA2D_ProgramLineEvent(DMA2D_HandleTypeDef *hdma2d, uint32_t Line)
Configure the line watermark.
HAL_StatusTypeDef HAL_DMA2D_DisableDeadTime(DMA2D_HandleTypeDef *hdma2d)
Disable DMA2D dead time feature.
HAL_StatusTypeDef HAL_DMA2D_ConfigCLUT(DMA2D_HandleTypeDef *hdma2d, DMA2D_CLUTCfgTypeDef CLUTCfg, uint32_t LayerIdx)
Configure the DMA2D CLUT Transfer.
HAL_StatusTypeDef HAL_DMA2D_UnRegisterCallback(DMA2D_HandleTypeDef *hdma2d, HAL_DMA2D_CallbackIDTypeDef CallbackID)
Unregister a DMA2D Callback DMA2D Callback is redirected to the weak (surcharged) predefined callback...
void(* XferErrorCallback)(struct __DMA2D_HandleTypeDef *hdma2d)
void HAL_DMA2D_LineEventCallback(DMA2D_HandleTypeDef *hdma2d)
Transfer watermark callback.
void HAL_DMA2D_IRQHandler(DMA2D_HandleTypeDef *hdma2d)
Handle DMA2D interrupt request.
DMA2D Layer structure definition.
HAL_StatusTypeDef HAL_DMA2D_CLUTLoad(DMA2D_HandleTypeDef *hdma2d, DMA2D_CLUTCfgTypeDef CLUTCfg, uint32_t LayerIdx)
Start DMA2D CLUT Loading.
HAL_StatusTypeDef HAL_DMA2D_ConfigDeadTime(DMA2D_HandleTypeDef *hdma2d, uint8_t DeadTime)
Configure dead time.
HAL_DMA2D_StateTypeDef
HAL DMA2D State structures definition.
uint32_t HAL_DMA2D_GetError(DMA2D_HandleTypeDef *hdma2d)
Return the DMA2D error code.
HAL_LockTypeDef
HAL Lock structures definition.
__IO HAL_DMA2D_StateTypeDef State
void(* MspInitCallback)(struct __DMA2D_HandleTypeDef *hdma2d)
void(* XferCpltCallback)(struct __DMA2D_HandleTypeDef *hdma2d)
HAL_StatusTypeDef HAL_DMA2D_CLUTLoad_IT(DMA2D_HandleTypeDef *hdma2d, DMA2D_CLUTCfgTypeDef CLUTCfg, uint32_t LayerIdx)
Start DMA2D CLUT Loading with interrupt enabled.
void HAL_DMA2D_CLUTLoadingCpltCallback(DMA2D_HandleTypeDef *hdma2d)
CLUT Transfer Complete callback.
void(* LineEventCallback)(struct __DMA2D_HandleTypeDef *hdma2d)
HAL_StatusTypeDef HAL_DMA2D_RegisterCallback(DMA2D_HandleTypeDef *hdma2d, HAL_DMA2D_CallbackIDTypeDef CallbackID, pDMA2D_CallbackTypeDef pCallback)
Register a User DMA2D Callback To be used instead of the weak (surcharged) predefined callback...
void(* CLUTLoadingCpltCallback)(struct __DMA2D_HandleTypeDef *hdma2d)
HAL_StatusTypeDef HAL_DMA2D_Abort(DMA2D_HandleTypeDef *hdma2d)
Abort the DMA2D Transfer.
HAL_StatusTypeDef HAL_DMA2D_EnableCLUT(DMA2D_HandleTypeDef *hdma2d, uint32_t LayerIdx)
Enable the DMA2D CLUT Transfer.