STM32F769IDiscovery  1.00
uDANTE Audio Networking with STM32F7 DISCO board
stm32f7xx_hal_dma2d.h
Go to the documentation of this file.
1 
38 /* Define to prevent recursive inclusion -------------------------------------*/
39 #ifndef __STM32F7xx_HAL_DMA2D_H
40 #define __STM32F7xx_HAL_DMA2D_H
41 
42 #ifdef __cplusplus
43  extern "C" {
44 #endif
45 
46 /* Includes ------------------------------------------------------------------*/
47 #include "stm32f7xx_hal_def.h"
48 
58 /* Exported types ------------------------------------------------------------*/
62 #define MAX_DMA2D_LAYER 2
63 
67 typedef struct
68 {
69  uint32_t Blue;
72  uint32_t Green;
75  uint32_t Red;
78 
82 typedef struct
83 {
84  uint32_t *pCLUT;
86  uint32_t CLUTColorMode;
89  uint32_t Size;
92 
96 typedef struct
97 {
98  uint32_t Mode;
101  uint32_t ColorMode;
104  uint32_t OutputOffset;
106 #if defined (DMA2D_OPFCCR_AI)
107  uint32_t AlphaInverted;
109 #endif /* DMA2D_OPFCCR_AI */
110 
111 #if defined (DMA2D_OPFCCR_RBS)
112  uint32_t RedBlueSwap;
115 #endif /* DMA2D_OPFCCR_RBS */
116 
118 
119 
123 typedef struct
124 {
125  uint32_t InputOffset;
128  uint32_t InputColorMode;
131  uint32_t AlphaMode;
134  uint32_t InputAlpha;
143 #if defined (DMA2D_FGPFCCR_AI) && defined (DMA2D_BGPFCCR_AI)
144  uint32_t AlphaInverted;
149 #endif /* (DMA2D_FGPFCCR_AI) && (DMA2D_BGPFCCR_AI) */
150 
151 #if defined (DMA2D_FGPFCCR_RBS) && defined (DMA2D_BGPFCCR_RBS)
152  uint32_t RedBlueSwap;
157 #endif /* (DMA2D_FGPFCCR_RBS) && (DMA2D_BGPFCCR_RBS) */
158 
160 
164 typedef enum
165 {
173 
177 typedef struct __DMA2D_HandleTypeDef
178 {
183  void (* XferCpltCallback)(struct __DMA2D_HandleTypeDef * hdma2d);
185  void (* XferErrorCallback)(struct __DMA2D_HandleTypeDef * hdma2d);
191  __IO HAL_DMA2D_StateTypeDef State;
193  __IO uint32_t ErrorCode;
199 /* Exported constants --------------------------------------------------------*/
207 #define HAL_DMA2D_ERROR_NONE ((uint32_t)0x00000000U)
208 #define HAL_DMA2D_ERROR_TE ((uint32_t)0x00000001U)
209 #define HAL_DMA2D_ERROR_CE ((uint32_t)0x00000002U)
210 #define HAL_DMA2D_ERROR_CAE ((uint32_t)0x00000004U)
211 #define HAL_DMA2D_ERROR_TIMEOUT ((uint32_t)0x00000020U)
219 #define DMA2D_M2M ((uint32_t)0x00000000U)
220 #define DMA2D_M2M_PFC DMA2D_CR_MODE_0
221 #define DMA2D_M2M_BLEND DMA2D_CR_MODE_1
222 #define DMA2D_R2M DMA2D_CR_MODE
230 #define DMA2D_OUTPUT_ARGB8888 ((uint32_t)0x00000000U)
231 #define DMA2D_OUTPUT_RGB888 DMA2D_OPFCCR_CM_0
232 #define DMA2D_OUTPUT_RGB565 DMA2D_OPFCCR_CM_1
233 #define DMA2D_OUTPUT_ARGB1555 (DMA2D_OPFCCR_CM_0|DMA2D_OPFCCR_CM_1)
234 #define DMA2D_OUTPUT_ARGB4444 DMA2D_OPFCCR_CM_2
242 #define DMA2D_INPUT_ARGB8888 ((uint32_t)0x00000000U)
243 #define DMA2D_INPUT_RGB888 ((uint32_t)0x00000001U)
244 #define DMA2D_INPUT_RGB565 ((uint32_t)0x00000002U)
245 #define DMA2D_INPUT_ARGB1555 ((uint32_t)0x00000003U)
246 #define DMA2D_INPUT_ARGB4444 ((uint32_t)0x00000004U)
247 #define DMA2D_INPUT_L8 ((uint32_t)0x00000005U)
248 #define DMA2D_INPUT_AL44 ((uint32_t)0x00000006U)
249 #define DMA2D_INPUT_AL88 ((uint32_t)0x00000007U)
250 #define DMA2D_INPUT_L4 ((uint32_t)0x00000008U)
251 #define DMA2D_INPUT_A8 ((uint32_t)0x00000009U)
252 #define DMA2D_INPUT_A4 ((uint32_t)0x0000000AU)
260 #define DMA2D_NO_MODIF_ALPHA ((uint32_t)0x00000000U)
261 #define DMA2D_REPLACE_ALPHA ((uint32_t)0x00000001U)
262 #define DMA2D_COMBINE_ALPHA ((uint32_t)0x00000002U)
268 #if defined (DMA2D_FGPFCCR_AI) && defined (DMA2D_BGPFCCR_AI)
269 
272 #define DMA2D_REGULAR_ALPHA ((uint32_t)0x00000000U)
273 #define DMA2D_INVERTED_ALPHA ((uint32_t)0x00000001U)
277 #endif /* (DMA2D_FGPFCCR_AI) && (DMA2D_BGPFCCR_AI) */
278 
279 #if defined (DMA2D_FGPFCCR_RBS) && defined (DMA2D_BGPFCCR_RBS)
280 
283 #define DMA2D_RB_REGULAR ((uint32_t)0x00000000U)
284 #define DMA2D_RB_SWAP ((uint32_t)0x00000001U)
288 #endif /* (DMA2D_FGPFCCR_RBS) && (DMA2D_BGPFCCR_RBS) */
289 
293 #define DMA2D_CCM_ARGB8888 ((uint32_t)0x00000000U)
294 #define DMA2D_CCM_RGB888 ((uint32_t)0x00000001U)
303 #define DMA2D_IT_CE DMA2D_CR_CEIE
304 #define DMA2D_IT_CTC DMA2D_CR_CTCIE
305 #define DMA2D_IT_CAE DMA2D_CR_CAEIE
306 #define DMA2D_IT_TW DMA2D_CR_TWIE
307 #define DMA2D_IT_TC DMA2D_CR_TCIE
308 #define DMA2D_IT_TE DMA2D_CR_TEIE
316 #define DMA2D_FLAG_CE DMA2D_ISR_CEIF
317 #define DMA2D_FLAG_CTC DMA2D_ISR_CTCIF
318 #define DMA2D_FLAG_CAE DMA2D_ISR_CAEIF
319 #define DMA2D_FLAG_TW DMA2D_ISR_TWIF
320 #define DMA2D_FLAG_TC DMA2D_ISR_TCIF
321 #define DMA2D_FLAG_TE DMA2D_ISR_TEIF
329 #define HAL_DMA2D_DisableCLUT HAL_DMA2D_CLUTLoading_Abort
338 /* Exported macros ------------------------------------------------------------*/
339 
347 #define __HAL_DMA2D_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_DMA2D_STATE_RESET)
354 #define __HAL_DMA2D_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= DMA2D_CR_START)
356 
357 /* Interrupt & Flag management */
371 #define __HAL_DMA2D_GET_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ISR & (__FLAG__))
386 #define __HAL_DMA2D_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->IFCR = (__FLAG__))
401 #define __HAL_DMA2D_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR |= (__INTERRUPT__))
416 #define __HAL_DMA2D_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR &= ~(__INTERRUPT__))
431 #define __HAL_DMA2D_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR & (__INTERRUPT__))
432 
437 /* Exported functions --------------------------------------------------------*/
446 /* Initialization and de-initialization functions *******************************/
451 
461 /* IO operation functions *******************************************************/
462 HAL_StatusTypeDef HAL_DMA2D_Start(DMA2D_HandleTypeDef *hdma2d, uint32_t pdata, uint32_t DstAddress, uint32_t Width, uint32_t Height);
463 HAL_StatusTypeDef HAL_DMA2D_BlendingStart(DMA2D_HandleTypeDef *hdma2d, uint32_t SrcAddress1, uint32_t SrcAddress2, uint32_t DstAddress, uint32_t Width, uint32_t Height);
464 HAL_StatusTypeDef HAL_DMA2D_Start_IT(DMA2D_HandleTypeDef *hdma2d, uint32_t pdata, uint32_t DstAddress, uint32_t Width, uint32_t Height);
465 HAL_StatusTypeDef HAL_DMA2D_BlendingStart_IT(DMA2D_HandleTypeDef *hdma2d, uint32_t SrcAddress1, uint32_t SrcAddress2, uint32_t DstAddress, uint32_t Width, uint32_t Height);
479 
488 /* Peripheral Control functions *************************************************/
495 
504 /* Peripheral State functions ***************************************************/
505 HAL_DMA2D_StateTypeDef HAL_DMA2D_GetState(DMA2D_HandleTypeDef *hdma2d);
506 uint32_t HAL_DMA2D_GetError(DMA2D_HandleTypeDef *hdma2d);
507 
516 /* Private constants ---------------------------------------------------------*/
517 
525 #define DMA2D_LINE_WATERMARK_MAX DMA2D_LWR_LW
533 #define DMA2D_COLOR_VALUE ((uint32_t)0x000000FFU)
541 #define DMA2D_MAX_LAYER 2
549 #define DMA2D_OFFSET DMA2D_FGOR_LO
557 #define DMA2D_PIXEL (DMA2D_NLR_PL >> 16U)
558 #define DMA2D_LINE DMA2D_NLR_NL
566 #define DMA2D_CLUT_SIZE (DMA2D_FGPFCCR_CS >> 8)
576 /* Private macros ------------------------------------------------------------*/
577 
580 #define IS_DMA2D_LAYER(LAYER) ((LAYER) <= DMA2D_MAX_LAYER)
581 #define IS_DMA2D_MODE(MODE) (((MODE) == DMA2D_M2M) || ((MODE) == DMA2D_M2M_PFC) || \
582  ((MODE) == DMA2D_M2M_BLEND) || ((MODE) == DMA2D_R2M))
583 #define IS_DMA2D_CMODE(MODE_ARGB) (((MODE_ARGB) == DMA2D_OUTPUT_ARGB8888) || ((MODE_ARGB) == DMA2D_OUTPUT_RGB888) || \
584  ((MODE_ARGB) == DMA2D_OUTPUT_RGB565) || ((MODE_ARGB) == DMA2D_OUTPUT_ARGB1555) || \
585  ((MODE_ARGB) == DMA2D_OUTPUT_ARGB4444))
586 #define IS_DMA2D_COLOR(COLOR) ((COLOR) <= DMA2D_COLOR_VALUE)
587 #define IS_DMA2D_LINE(LINE) ((LINE) <= DMA2D_LINE)
588 #define IS_DMA2D_PIXEL(PIXEL) ((PIXEL) <= DMA2D_PIXEL)
589 #define IS_DMA2D_OFFSET(OOFFSET) ((OOFFSET) <= DMA2D_OFFSET)
590 #define IS_DMA2D_INPUT_COLOR_MODE(INPUT_CM) (((INPUT_CM) == DMA2D_INPUT_ARGB8888) || ((INPUT_CM) == DMA2D_INPUT_RGB888) || \
591  ((INPUT_CM) == DMA2D_INPUT_RGB565) || ((INPUT_CM) == DMA2D_INPUT_ARGB1555) || \
592  ((INPUT_CM) == DMA2D_INPUT_ARGB4444) || ((INPUT_CM) == DMA2D_INPUT_L8) || \
593  ((INPUT_CM) == DMA2D_INPUT_AL44) || ((INPUT_CM) == DMA2D_INPUT_AL88) || \
594  ((INPUT_CM) == DMA2D_INPUT_L4) || ((INPUT_CM) == DMA2D_INPUT_A8) || \
595  ((INPUT_CM) == DMA2D_INPUT_A4))
596 #define IS_DMA2D_ALPHA_MODE(AlphaMode) (((AlphaMode) == DMA2D_NO_MODIF_ALPHA) || \
597  ((AlphaMode) == DMA2D_REPLACE_ALPHA) || \
598  ((AlphaMode) == DMA2D_COMBINE_ALPHA))
599 
600 #define IS_DMA2D_ALPHA_INVERTED(Alpha_Inverted) (((Alpha_Inverted) == DMA2D_REGULAR_ALPHA) || \
601  ((Alpha_Inverted) == DMA2D_INVERTED_ALPHA))
602 
603 #define IS_DMA2D_RB_SWAP(RB_Swap) (((RB_Swap) == DMA2D_RB_REGULAR) || \
604  ((RB_Swap) == DMA2D_RB_SWAP))
605 
606 #define IS_DMA2D_CLUT_CM(CLUT_CM) (((CLUT_CM) == DMA2D_CCM_ARGB8888) || ((CLUT_CM) == DMA2D_CCM_RGB888))
607 #define IS_DMA2D_CLUT_SIZE(CLUT_SIZE) ((CLUT_SIZE) <= DMA2D_CLUT_SIZE)
608 #define IS_DMA2D_LINEWATERMARK(LineWatermark) ((LineWatermark) <= DMA2D_LINE_WATERMARK_MAX)
609 #define IS_DMA2D_IT(IT) (((IT) == DMA2D_IT_CTC) || ((IT) == DMA2D_IT_CAE) || \
610  ((IT) == DMA2D_IT_TW) || ((IT) == DMA2D_IT_TC) || \
611  ((IT) == DMA2D_IT_TE) || ((IT) == DMA2D_IT_CE))
612 #define IS_DMA2D_GET_FLAG(FLAG) (((FLAG) == DMA2D_FLAG_CTC) || ((FLAG) == DMA2D_FLAG_CAE) || \
613  ((FLAG) == DMA2D_FLAG_TW) || ((FLAG) == DMA2D_FLAG_TC) || \
614  ((FLAG) == DMA2D_FLAG_TE) || ((FLAG) == DMA2D_FLAG_CE))
615 
628 #ifdef __cplusplus
629 }
630 #endif
631 
632 #endif /* __STM32F7xx_HAL_DMA2D_H */
633 
634 
635 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
#define MAX_DMA2D_LAYER
HAL_StatusTypeDef HAL_DMA2D_CLUTLoading_Resume(DMA2D_HandleTypeDef *hdma2d, uint32_t LayerIdx)
HAL_StatusTypeDef HAL_DMA2D_Suspend(DMA2D_HandleTypeDef *hdma2d)
HAL_StatusTypeDef HAL_DMA2D_Start_IT(DMA2D_HandleTypeDef *hdma2d, uint32_t pdata, uint32_t DstAddress, uint32_t Width, uint32_t Height)
HAL_StatusTypeDef HAL_DMA2D_Start(DMA2D_HandleTypeDef *hdma2d, uint32_t pdata, uint32_t DstAddress, uint32_t Width, uint32_t Height)
DMA2D color Structure definition.
DMA2D CLUT Structure definition.
HAL_LockTypeDef
HAL Lock structures definition.
void(* XferErrorCallback)(struct __DMA2D_HandleTypeDef *hdma2d)
HAL_StatusTypeDef HAL_DMA2D_ConfigDeadTime(DMA2D_HandleTypeDef *hdma2d, uint8_t DeadTime)
DMA2D Init structure definition.
void HAL_DMA2D_IRQHandler(DMA2D_HandleTypeDef *hdma2d)
HAL_StatusTypeDef HAL_DMA2D_ConfigLayer(DMA2D_HandleTypeDef *hdma2d, uint32_t LayerIdx)
HAL_StatusTypeDef HAL_DMA2D_CLUTLoad(DMA2D_HandleTypeDef *hdma2d, DMA2D_CLUTCfgTypeDef CLUTCfg, uint32_t LayerIdx)
void HAL_DMA2D_MspInit(DMA2D_HandleTypeDef *hdma2d)
HAL_StatusTypeDef HAL_DMA2D_Init(DMA2D_HandleTypeDef *hdma2d)
struct __DMA2D_HandleTypeDef DMA2D_HandleTypeDef
DMA2D handle Structure definition.
HAL_StatusTypeDef HAL_DMA2D_CLUTLoading_Suspend(DMA2D_HandleTypeDef *hdma2d, uint32_t LayerIdx)
DMA2D Controller.
Definition: stm32f745xx.h:413
#define __IO
Definition: core_cm0.h:213
void(* XferCpltCallback)(struct __DMA2D_HandleTypeDef *hdma2d)
DMA2D Layer structure definition.
__IO HAL_DMA2D_StateTypeDef State
uint32_t HAL_DMA2D_GetError(DMA2D_HandleTypeDef *hdma2d)
void HAL_DMA2D_LineEventCallback(DMA2D_HandleTypeDef *hdma2d)
HAL_DMA2D_StateTypeDef HAL_DMA2D_GetState(DMA2D_HandleTypeDef *hdma2d)
HAL_StatusTypeDef HAL_DMA2D_DeInit(DMA2D_HandleTypeDef *hdma2d)
void HAL_DMA2D_MspDeInit(DMA2D_HandleTypeDef *hdma2d)
HAL_StatusTypeDef HAL_DMA2D_EnableCLUT(DMA2D_HandleTypeDef *hdma2d, uint32_t LayerIdx)
HAL_StatusTypeDef HAL_DMA2D_DisableDeadTime(DMA2D_HandleTypeDef *hdma2d)
HAL_StatusTypeDef HAL_DMA2D_CLUTLoading_Abort(DMA2D_HandleTypeDef *hdma2d, uint32_t LayerIdx)
HAL_DMA2D_StateTypeDef
HAL DMA2D State structures definition.
HAL_StatusTypeDef HAL_DMA2D_ConfigCLUT(DMA2D_HandleTypeDef *hdma2d, DMA2D_CLUTCfgTypeDef CLUTCfg, uint32_t LayerIdx)
This file contains HAL common defines, enumeration, macros and structures definitions.
HAL_StatusTypeDef HAL_DMA2D_EnableDeadTime(DMA2D_HandleTypeDef *hdma2d)
HAL_StatusTypeDef HAL_DMA2D_PollForTransfer(DMA2D_HandleTypeDef *hdma2d, uint32_t Timeout)
HAL_StatusTypeDef HAL_DMA2D_BlendingStart(DMA2D_HandleTypeDef *hdma2d, uint32_t SrcAddress1, uint32_t SrcAddress2, uint32_t DstAddress, uint32_t Width, uint32_t Height)
HAL_StatusTypeDef HAL_DMA2D_Abort(DMA2D_HandleTypeDef *hdma2d)
HAL_StatusTypeDef HAL_DMA2D_ProgramLineEvent(DMA2D_HandleTypeDef *hdma2d, uint32_t Line)
HAL_StatusTypeDef
HAL Status structures 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)
HAL_StatusTypeDef HAL_DMA2D_CLUTLoad_IT(DMA2D_HandleTypeDef *hdma2d, DMA2D_CLUTCfgTypeDef CLUTCfg, uint32_t LayerIdx)
void HAL_DMA2D_CLUTLoadingCpltCallback(DMA2D_HandleTypeDef *hdma2d)
HAL_StatusTypeDef HAL_DMA2D_Resume(DMA2D_HandleTypeDef *hdma2d)
DMA2D_LayerCfgTypeDef LayerCfg[MAX_DMA2D_LAYER]
DMA2D handle Structure definition.