![]() |
|
|||
File indexing completed on 2025-05-11 08:23:37
0001 /** 0002 ****************************************************************************** 0003 * @file stm32h7xx_ll_dma2d.h 0004 * @author MCD Application Team 0005 * @brief Header file of DMA2D LL module. 0006 ****************************************************************************** 0007 * @attention 0008 * 0009 * Copyright (c) 2017 STMicroelectronics. 0010 * All rights reserved. 0011 * 0012 * This software is licensed under terms that can be found in the LICENSE file 0013 * in the root directory of this software component. 0014 * If no LICENSE file comes with this software, it is provided AS-IS. 0015 * 0016 ****************************************************************************** 0017 */ 0018 0019 /* Define to prevent recursive inclusion -------------------------------------*/ 0020 #ifndef STM32H7xx_LL_DMA2D_H 0021 #define STM32H7xx_LL_DMA2D_H 0022 0023 #ifdef __cplusplus 0024 extern "C" { 0025 #endif 0026 0027 /* Includes ------------------------------------------------------------------*/ 0028 #include "stm32h7xx.h" 0029 0030 /** @addtogroup STM32H7xx_LL_Driver 0031 * @{ 0032 */ 0033 0034 #if defined (DMA2D) 0035 0036 /** @defgroup DMA2D_LL DMA2D 0037 * @ingroup RTEMSBSPsARMSTM32H7 0038 * @{ 0039 */ 0040 0041 /* Private types -------------------------------------------------------------*/ 0042 /* Private variables ---------------------------------------------------------*/ 0043 /* Private constants ---------------------------------------------------------*/ 0044 /* Private macros ------------------------------------------------------------*/ 0045 #if defined(USE_FULL_LL_DRIVER) || defined(__rtems__) 0046 /** @defgroup DMA2D_LL_Private_Macros DMA2D Private Macros 0047 * @ingroup RTEMSBSPsARMSTM32H7 0048 * @{ 0049 */ 0050 0051 /** 0052 * @} 0053 */ 0054 #endif /*USE_FULL_LL_DRIVER*/ 0055 0056 /* Exported types ------------------------------------------------------------*/ 0057 #if defined(USE_FULL_LL_DRIVER) || defined(__rtems__) 0058 /** @defgroup DMA2D_LL_ES_Init_Struct DMA2D Exported Init structures 0059 * @ingroup RTEMSBSPsARMSTM32H7 0060 * @{ 0061 */ 0062 0063 /** 0064 * @brief LL DMA2D Init Structure Definition 0065 */ 0066 typedef struct 0067 { 0068 uint32_t Mode; /*!< Specifies the DMA2D transfer mode. 0069 - This parameter can be one value of @ref DMA2D_LL_EC_MODE. 0070 0071 This parameter can be modified afterwards, 0072 using unitary function @ref LL_DMA2D_SetMode(). */ 0073 0074 uint32_t ColorMode; /*!< Specifies the color format of the output image. 0075 - This parameter can be one value of @ref DMA2D_LL_EC_OUTPUT_COLOR_MODE. 0076 0077 This parameter can be modified afterwards using, 0078 unitary function @ref LL_DMA2D_SetOutputColorMode(). */ 0079 0080 uint32_t OutputBlue; /*!< Specifies the Blue value of the output image. 0081 - This parameter must be a number between: 0082 Min_Data = 0x00 and Max_Data = 0xFF if ARGB8888 color mode is selected. 0083 - This parameter must be a number between: 0084 Min_Data = 0x00 and Max_Data = 0xFF if RGB888 color mode is selected. 0085 - This parameter must be a number between: 0086 Min_Data = 0x00 and Max_Data = 0x1F if RGB565 color mode is selected. 0087 - This parameter must be a number between: 0088 Min_Data = 0x00 and Max_Data = 0x1F if ARGB1555 color mode is selected. 0089 - This parameter must be a number between: 0090 Min_Data = 0x00 and Max_Data = 0x0F if ARGB4444 color mode is selected. 0091 0092 This parameter can be modified afterwards, 0093 using unitary function @ref LL_DMA2D_SetOutputColor() or configuration 0094 function @ref LL_DMA2D_ConfigOutputColor(). */ 0095 0096 uint32_t OutputGreen; /*!< Specifies the Green value of the output image. 0097 - This parameter must be a number between: 0098 Min_Data = 0x00 and Max_Data = 0xFF if ARGB8888 color mode is selected. 0099 - This parameter must be a number between: 0100 Min_Data = 0x00 and Max_Data = 0xFF if RGB888 color mode is selected. 0101 - This parameter must be a number between: 0102 Min_Data = 0x00 and Max_Data = 0x3F if RGB565 color mode is selected. 0103 - This parameter must be a number between: 0104 Min_Data = 0x00 and Max_Data = 0x1F if ARGB1555 color mode is selected. 0105 - This parameter must be a number between: 0106 Min_Data = 0x00 and Max_Data = 0x0F if ARGB4444 color mode is selected. 0107 0108 This parameter can be modified afterwards 0109 using unitary function @ref LL_DMA2D_SetOutputColor() or configuration 0110 function @ref LL_DMA2D_ConfigOutputColor(). */ 0111 0112 uint32_t OutputRed; /*!< Specifies the Red value of the output image. 0113 - This parameter must be a number between: 0114 Min_Data = 0x00 and Max_Data = 0xFF if ARGB8888 color mode is selected. 0115 - This parameter must be a number between: 0116 Min_Data = 0x00 and Max_Data = 0xFF if RGB888 color mode is selected. 0117 - This parameter must be a number between: 0118 Min_Data = 0x00 and Max_Data = 0x1F if RGB565 color mode is selected. 0119 - This parameter must be a number between: 0120 Min_Data = 0x00 and Max_Data = 0x1F if ARGB1555 color mode is selected. 0121 - This parameter must be a number between: 0122 Min_Data = 0x00 and Max_Data = 0x0F if ARGB4444 color mode is selected. 0123 0124 This parameter can be modified afterwards 0125 using unitary function @ref LL_DMA2D_SetOutputColor() or configuration 0126 function @ref LL_DMA2D_ConfigOutputColor(). */ 0127 0128 uint32_t OutputAlpha; /*!< Specifies the Alpha channel of the output image. 0129 - This parameter must be a number between: 0130 Min_Data = 0x00 and Max_Data = 0xFF if ARGB8888 color mode is selected. 0131 - This parameter must be a number between: 0132 Min_Data = 0x00 and Max_Data = 0x01 if ARGB1555 color mode is selected. 0133 - This parameter must be a number between: 0134 Min_Data = 0x00 and Max_Data = 0x0F if ARGB4444 color mode is selected. 0135 - This parameter is not considered if RGB888 or RGB565 color mode is selected. 0136 0137 This parameter can be modified afterwards using, 0138 unitary function @ref LL_DMA2D_SetOutputColor() or configuration 0139 function @ref LL_DMA2D_ConfigOutputColor(). */ 0140 0141 uint32_t OutputMemoryAddress; /*!< Specifies the memory address. 0142 - This parameter must be a number between: 0143 Min_Data = 0x0000 and Max_Data = 0xFFFFFFFF. 0144 0145 This parameter can be modified afterwards, 0146 using unitary function @ref LL_DMA2D_SetOutputMemAddr(). */ 0147 0148 uint32_t OutputSwapMode; /*!< Specifies the output swap mode color format of the output image. 0149 - This parameter can be one value of @ref DMA2D_LL_EC_OUTPUT_SWAP_MODE. 0150 0151 This parameter can be modified afterwards, 0152 using unitary function @ref LL_DMA2D_SetOutputSwapMode(). */ 0153 0154 uint32_t LineOffsetMode; /*!< Specifies the output line offset mode. 0155 - This parameter can be one value of @ref DMA2D_LL_EC_LINE_OFFSET_MODE. 0156 0157 This parameter can be modified afterwards, 0158 using unitary function @ref LL_DMA2D_SetLineOffsetMode(). */ 0159 0160 uint32_t LineOffset; /*!< Specifies the output line offset value. 0161 - This parameter must be a number between Min_Data = 0x0000 and Max_Data = 0xFFFF. 0162 0163 This parameter can be modified afterwards, 0164 using unitary function @ref LL_DMA2D_SetLineOffset(). */ 0165 0166 uint32_t NbrOfLines; /*!< Specifies the number of lines of the area to be transferred. 0167 - This parameter must be a number between: 0168 Min_Data = 0x0000 and Max_Data = 0xFFFF. 0169 0170 This parameter can be modified afterwards, 0171 using unitary function @ref LL_DMA2D_SetNbrOfLines(). */ 0172 0173 uint32_t NbrOfPixelsPerLines; /*!< Specifies the number of pixels per lines of the area to be transferred. 0174 - This parameter must be a number between Min_Data = 0x0000 and Max_Data = 0x3FFF. 0175 0176 This parameter can be modified afterwards using, 0177 unitary function @ref LL_DMA2D_SetNbrOfPixelsPerLines(). */ 0178 0179 uint32_t AlphaInversionMode; /*!< Specifies the output alpha inversion mode. 0180 - This parameter can be one value of @ref DMA2D_LL_EC_ALPHA_INVERSION. 0181 0182 This parameter can be modified afterwards, 0183 using unitary function @ref LL_DMA2D_SetOutputAlphaInvMode(). */ 0184 0185 uint32_t RBSwapMode; /*!< Specifies the output Red Blue swap mode. 0186 - This parameter can be one value of @ref DMA2D_LL_EC_RED_BLUE_SWAP. 0187 0188 This parameter can be modified afterwards, 0189 using unitary function @ref LL_DMA2D_SetOutputRBSwapMode(). */ 0190 0191 } LL_DMA2D_InitTypeDef; 0192 0193 /** 0194 * @brief LL DMA2D Layer Configuration Structure Definition 0195 */ 0196 typedef struct 0197 { 0198 uint32_t MemoryAddress; /*!< Specifies the foreground or background memory address. 0199 - This parameter must be a number between: 0200 Min_Data = 0x0000 and Max_Data = 0xFFFFFFFF. 0201 0202 This parameter can be modified afterwards using unitary functions 0203 - @ref LL_DMA2D_FGND_SetMemAddr() for foreground layer, 0204 - @ref LL_DMA2D_BGND_SetMemAddr() for background layer. */ 0205 0206 uint32_t LineOffset; /*!< Specifies the foreground or background line offset value. 0207 - This parameter must be a number between Min_Data = 0x0000 and Max_Data = 0x3FFF. 0208 0209 This parameter can be modified afterwards using unitary functions 0210 - @ref LL_DMA2D_FGND_SetLineOffset() for foreground layer, 0211 - @ref LL_DMA2D_BGND_SetLineOffset() for background layer. */ 0212 0213 uint32_t ColorMode; /*!< Specifies the foreground or background color mode. 0214 - This parameter can be one value of @ref DMA2D_LL_EC_INPUT_COLOR_MODE. 0215 0216 This parameter can be modified afterwards using unitary functions 0217 - @ref LL_DMA2D_FGND_SetColorMode() for foreground layer, 0218 - @ref LL_DMA2D_BGND_SetColorMode() for background layer. */ 0219 0220 uint32_t CLUTColorMode; /*!< Specifies the foreground or background CLUT color mode. 0221 - This parameter can be one value of @ref DMA2D_LL_EC_CLUT_COLOR_MODE. 0222 0223 This parameter can be modified afterwards using unitary functions 0224 - @ref LL_DMA2D_FGND_SetCLUTColorMode() for foreground layer, 0225 - @ref LL_DMA2D_BGND_SetCLUTColorMode() for background layer. */ 0226 0227 uint32_t CLUTSize; /*!< Specifies the foreground or background CLUT size. 0228 - This parameter must be a number between Min_Data = 0x00 and Max_Data = 0xFF. 0229 0230 This parameter can be modified afterwards using unitary functions 0231 - @ref LL_DMA2D_FGND_SetCLUTSize() for foreground layer, 0232 - @ref LL_DMA2D_BGND_SetCLUTSize() for background layer. */ 0233 0234 uint32_t AlphaMode; /*!< Specifies the foreground or background alpha mode. 0235 - This parameter can be one value of @ref DMA2D_LL_EC_ALPHA_MODE. 0236 0237 This parameter can be modified afterwards using unitary functions 0238 - @ref LL_DMA2D_FGND_SetAlphaMode() for foreground layer, 0239 - @ref LL_DMA2D_BGND_SetAlphaMode() for background layer. */ 0240 0241 uint32_t Alpha; /*!< Specifies the foreground or background Alpha value. 0242 - This parameter must be a number between Min_Data = 0x00 and Max_Data = 0xFF. 0243 0244 This parameter can be modified afterwards using unitary functions 0245 - @ref LL_DMA2D_FGND_SetAlpha() for foreground layer, 0246 - @ref LL_DMA2D_BGND_SetAlpha() for background layer. */ 0247 0248 uint32_t Blue; /*!< Specifies the foreground or background Blue color value. 0249 - This parameter must be a number between Min_Data = 0x00 and Max_Data = 0xFF. 0250 0251 This parameter can be modified afterwards using unitary functions 0252 - @ref LL_DMA2D_FGND_SetBlueColor() for foreground layer, 0253 - @ref LL_DMA2D_BGND_SetBlueColor() for background layer. */ 0254 0255 uint32_t Green; /*!< Specifies the foreground or background Green color value. 0256 - This parameter must be a number between Min_Data = 0x00 and Max_Data = 0xFF. 0257 0258 This parameter can be modified afterwards using unitary functions 0259 - @ref LL_DMA2D_FGND_SetGreenColor() for foreground layer, 0260 - @ref LL_DMA2D_BGND_SetGreenColor() for background layer. */ 0261 0262 uint32_t Red; /*!< Specifies the foreground or background Red color value. 0263 - This parameter must be a number between Min_Data = 0x00 and Max_Data = 0xFF. 0264 0265 This parameter can be modified afterwards using unitary functions 0266 - @ref LL_DMA2D_FGND_SetRedColor() for foreground layer, 0267 - @ref LL_DMA2D_BGND_SetRedColor() for background layer. */ 0268 0269 uint32_t CLUTMemoryAddress; /*!< Specifies the foreground or background CLUT memory address. 0270 - This parameter must be a number between: 0271 Min_Data = 0x0000 and Max_Data = 0xFFFFFFFF. 0272 0273 This parameter can be modified afterwards using unitary functions 0274 - @ref LL_DMA2D_FGND_SetCLUTMemAddr() for foreground layer, 0275 - @ref LL_DMA2D_BGND_SetCLUTMemAddr() for background layer. */ 0276 0277 uint32_t AlphaInversionMode; /*!< Specifies the foreground or background alpha inversion mode. 0278 - This parameter can be one value of @ref DMA2D_LL_EC_ALPHA_INVERSION. 0279 0280 This parameter can be modified afterwards using unitary functions 0281 - @ref LL_DMA2D_FGND_SetAlphaInvMode() for foreground layer, 0282 - @ref LL_DMA2D_BGND_SetAlphaInvMode() for background layer. */ 0283 0284 uint32_t RBSwapMode; /*!< Specifies the foreground or background Red Blue swap mode. 0285 This parameter can be one value of @ref DMA2D_LL_EC_RED_BLUE_SWAP . 0286 0287 This parameter can be modified afterwards using unitary functions 0288 - @ref LL_DMA2D_FGND_SetRBSwapMode() for foreground layer, 0289 - @ref LL_DMA2D_BGND_SetRBSwapMode() for background layer. */ 0290 0291 uint32_t ChromaSubSampling; /*!< Configure the chroma sub-sampling mode for the YCbCr color mode 0292 This parameter is applicable for foreground layer only. 0293 This parameter can be one value of @ref DMA2D_LL_CHROMA_SUB_SAMPLING 0294 0295 This parameter can be modified afterwards using unitary functions 0296 - @ref LL_DMA2D_FGND_SetChrSubSampling() for foreground layer. */ 0297 0298 } LL_DMA2D_LayerCfgTypeDef; 0299 0300 /** 0301 * @brief LL DMA2D Output Color Structure Definition 0302 */ 0303 typedef struct 0304 { 0305 uint32_t ColorMode; /*!< Specifies the color format of the output image. 0306 - This parameter can be one value of @ref DMA2D_LL_EC_OUTPUT_COLOR_MODE. 0307 0308 This parameter can be modified afterwards using 0309 unitary function @ref LL_DMA2D_SetOutputColorMode(). */ 0310 0311 uint32_t OutputBlue; /*!< Specifies the Blue value of the output image. 0312 - This parameter must be a number between: 0313 Min_Data = 0x00 and Max_Data = 0xFF if ARGB8888 color mode is selected. 0314 - This parameter must be a number between: 0315 Min_Data = 0x00 and Max_Data = 0xFF if RGB888 color mode is selected. 0316 - This parameter must be a number between: 0317 Min_Data = 0x00 and Max_Data = 0x1F if RGB565 color mode is selected. 0318 - This parameter must be a number between: 0319 Min_Data = 0x00 and Max_Data = 0x1F if ARGB1555 color mode is selected. 0320 - This parameter must be a number between: 0321 Min_Data = 0x00 and Max_Data = 0x0F if ARGB4444 color mode is selected. 0322 0323 This parameter can be modified afterwards using, 0324 unitary function @ref LL_DMA2D_SetOutputColor() or configuration 0325 function @ref LL_DMA2D_ConfigOutputColor(). */ 0326 0327 uint32_t OutputGreen; /*!< Specifies the Green value of the output image. 0328 - This parameter must be a number between: 0329 Min_Data = 0x00 and Max_Data = 0xFF if ARGB8888 color mode is selected. 0330 - This parameter must be a number between 0331 Min_Data = 0x00 and Max_Data = 0xFF if RGB888 color mode is selected. 0332 - This parameter must be a number between: 0333 Min_Data = 0x00 and Max_Data = 0x3F if RGB565 color mode is selected. 0334 - This parameter must be a number between: 0335 Min_Data = 0x00 and Max_Data = 0x1F if ARGB1555 color mode is selected. 0336 - This parameter must be a number between: 0337 Min_Data = 0x00 and Max_Data = 0x0F if ARGB4444 color mode is selected. 0338 0339 This parameter can be modified afterwards, 0340 using unitary function @ref LL_DMA2D_SetOutputColor() or configuration 0341 function @ref LL_DMA2D_ConfigOutputColor(). */ 0342 0343 uint32_t OutputRed; /*!< Specifies the Red value of the output image. 0344 - This parameter must be a number between: 0345 Min_Data = 0x00 and Max_Data = 0xFF if ARGB8888 color mode is selected. 0346 - This parameter must be a number between: 0347 Min_Data = 0x00 and Max_Data = 0xFF if RGB888 color mode is selected. 0348 - This parameter must be a number between: 0349 Min_Data = 0x00 and Max_Data = 0x1F if RGB565 color mode is selected. 0350 - This parameter must be a number between: 0351 Min_Data = 0x00 and Max_Data = 0x1F if ARGB1555 color mode is selected. 0352 - This parameter must be a number between: 0353 Min_Data = 0x00 and Max_Data = 0x0F if ARGB4444 color mode is selected. 0354 0355 This parameter can be modified afterwards, 0356 using unitary function @ref LL_DMA2D_SetOutputColor() or configuration 0357 function @ref LL_DMA2D_ConfigOutputColor(). */ 0358 0359 uint32_t OutputAlpha; /*!< Specifies the Alpha channel of the output image. 0360 - This parameter must be a number between: 0361 Min_Data = 0x00 and Max_Data = 0xFF if ARGB8888 color mode is selected. 0362 - This parameter must be a number between: 0363 Min_Data = 0x00 and Max_Data = 0x01 if ARGB1555 color mode is selected. 0364 - This parameter must be a number between: 0365 Min_Data = 0x00 and Max_Data = 0x0F if ARGB4444 color mode is selected. 0366 - This parameter is not considered if RGB888 or RGB565 color mode is selected. 0367 0368 This parameter can be modified afterwards, 0369 using unitary function @ref LL_DMA2D_SetOutputColor() or configuration 0370 function @ref LL_DMA2D_ConfigOutputColor(). */ 0371 0372 } LL_DMA2D_ColorTypeDef; 0373 0374 /** 0375 * @} 0376 */ 0377 #endif /* USE_FULL_LL_DRIVER */ 0378 0379 /* Exported constants --------------------------------------------------------*/ 0380 /** @defgroup DMA2D_LL_Exported_Constants DMA2D Exported Constants 0381 * @ingroup RTEMSBSPsARMSTM32H7 0382 * @{ 0383 */ 0384 0385 /** @defgroup DMA2D_LL_EC_GET_FLAG Get Flags Defines 0386 * @ingroup RTEMSBSPsARMSTM32H7 0387 * @brief Flags defines which can be used with LL_DMA2D_ReadReg function 0388 * @{ 0389 */ 0390 #define LL_DMA2D_FLAG_CEIF DMA2D_ISR_CEIF /*!< Configuration Error Interrupt Flag */ 0391 #define LL_DMA2D_FLAG_CTCIF DMA2D_ISR_CTCIF /*!< CLUT Transfer Complete Interrupt Flag */ 0392 #define LL_DMA2D_FLAG_CAEIF DMA2D_ISR_CAEIF /*!< CLUT Access Error Interrupt Flag */ 0393 #define LL_DMA2D_FLAG_TWIF DMA2D_ISR_TWIF /*!< Transfer Watermark Interrupt Flag */ 0394 #define LL_DMA2D_FLAG_TCIF DMA2D_ISR_TCIF /*!< Transfer Complete Interrupt Flag */ 0395 #define LL_DMA2D_FLAG_TEIF DMA2D_ISR_TEIF /*!< Transfer Error Interrupt Flag */ 0396 /** 0397 * @} 0398 */ 0399 0400 /** @defgroup DMA2D_LL_EC_IT IT Defines 0401 * @ingroup RTEMSBSPsARMSTM32H7 0402 * @brief IT defines which can be used with LL_DMA2D_ReadReg and LL_DMA2D_WriteReg functions 0403 * @{ 0404 */ 0405 #define LL_DMA2D_IT_CEIE DMA2D_CR_CEIE /*!< Configuration Error Interrupt */ 0406 #define LL_DMA2D_IT_CTCIE DMA2D_CR_CTCIE /*!< CLUT Transfer Complete Interrupt */ 0407 #define LL_DMA2D_IT_CAEIE DMA2D_CR_CAEIE /*!< CLUT Access Error Interrupt */ 0408 #define LL_DMA2D_IT_TWIE DMA2D_CR_TWIE /*!< Transfer Watermark Interrupt */ 0409 #define LL_DMA2D_IT_TCIE DMA2D_CR_TCIE /*!< Transfer Complete Interrupt */ 0410 #define LL_DMA2D_IT_TEIE DMA2D_CR_TEIE /*!< Transfer Error Interrupt */ 0411 /** 0412 * @} 0413 */ 0414 0415 /** @defgroup DMA2D_LL_EC_MODE Mode 0416 * @ingroup RTEMSBSPsARMSTM32H7 0417 * @{ 0418 */ 0419 #define LL_DMA2D_MODE_M2M 0x00000000U /*!< DMA2D memory to memory transfer mode */ 0420 #define LL_DMA2D_MODE_M2M_PFC DMA2D_CR_MODE_0 /*!< DMA2D memory to memory with pixel format conversion transfer mode */ 0421 #define LL_DMA2D_MODE_M2M_BLEND DMA2D_CR_MODE_1 /*!< DMA2D memory to memory with blending transfer mode */ 0422 #define LL_DMA2D_MODE_R2M (DMA2D_CR_MODE_0|DMA2D_CR_MODE_1) /*!< DMA2D register to memory transfer mode */ 0423 #define LL_DMA2D_MODE_M2M_BLEND_FIXED_COLOR_FG DMA2D_CR_MODE_2 /*!< DMA2D memory to memory with blending transfer mode and fixed color foreground */ 0424 #define LL_DMA2D_MODE_M2M_BLEND_FIXED_COLOR_BG (DMA2D_CR_MODE_0|DMA2D_CR_MODE_2) /*!< DMA2D memory to memory with blending transfer mode and fixed color background */ 0425 /** 0426 * @} 0427 */ 0428 0429 /** @defgroup DMA2D_LL_EC_OUTPUT_COLOR_MODE Output Color Mode 0430 * @ingroup RTEMSBSPsARMSTM32H7 0431 * @{ 0432 */ 0433 #define LL_DMA2D_OUTPUT_MODE_ARGB8888 0x00000000U /*!< ARGB8888 */ 0434 #define LL_DMA2D_OUTPUT_MODE_RGB888 DMA2D_OPFCCR_CM_0 /*!< RGB888 */ 0435 #define LL_DMA2D_OUTPUT_MODE_RGB565 DMA2D_OPFCCR_CM_1 /*!< RGB565 */ 0436 #define LL_DMA2D_OUTPUT_MODE_ARGB1555 (DMA2D_OPFCCR_CM_0|DMA2D_OPFCCR_CM_1) /*!< ARGB1555 */ 0437 #define LL_DMA2D_OUTPUT_MODE_ARGB4444 DMA2D_OPFCCR_CM_2 /*!< ARGB4444 */ 0438 /** 0439 * @} 0440 */ 0441 0442 /** @defgroup DMA2D_LL_EC_INPUT_COLOR_MODE Input Color Mode 0443 * @ingroup RTEMSBSPsARMSTM32H7 0444 * @{ 0445 */ 0446 #define LL_DMA2D_INPUT_MODE_ARGB8888 0x00000000U /*!< ARGB8888 */ 0447 #define LL_DMA2D_INPUT_MODE_RGB888 DMA2D_FGPFCCR_CM_0 /*!< RGB888 */ 0448 #define LL_DMA2D_INPUT_MODE_RGB565 DMA2D_FGPFCCR_CM_1 /*!< RGB565 */ 0449 #define LL_DMA2D_INPUT_MODE_ARGB1555 (DMA2D_FGPFCCR_CM_0|DMA2D_FGPFCCR_CM_1) /*!< ARGB1555 */ 0450 #define LL_DMA2D_INPUT_MODE_ARGB4444 DMA2D_FGPFCCR_CM_2 /*!< ARGB4444 */ 0451 #define LL_DMA2D_INPUT_MODE_L8 (DMA2D_FGPFCCR_CM_0|DMA2D_FGPFCCR_CM_2) /*!< L8 */ 0452 #define LL_DMA2D_INPUT_MODE_AL44 (DMA2D_FGPFCCR_CM_1|DMA2D_FGPFCCR_CM_2) /*!< AL44 */ 0453 #define LL_DMA2D_INPUT_MODE_AL88 (DMA2D_FGPFCCR_CM_0|DMA2D_FGPFCCR_CM_1|DMA2D_FGPFCCR_CM_2) /*!< AL88 */ 0454 #define LL_DMA2D_INPUT_MODE_L4 DMA2D_FGPFCCR_CM_3 /*!< L4 */ 0455 #define LL_DMA2D_INPUT_MODE_A8 (DMA2D_FGPFCCR_CM_0|DMA2D_FGPFCCR_CM_3) /*!< A8 */ 0456 #define LL_DMA2D_INPUT_MODE_A4 (DMA2D_FGPFCCR_CM_1|DMA2D_FGPFCCR_CM_3) /*!< A4 */ 0457 #define LL_DMA2D_INPUT_MODE_YCBCR (DMA2D_FGPFCCR_CM_0|DMA2D_FGPFCCR_CM_1|DMA2D_FGPFCCR_CM_3) /*!< YCbCr */ 0458 /** 0459 * @} 0460 */ 0461 0462 /** @defgroup DMA2D_LL_EC_ALPHA_MODE Alpha Mode 0463 * @ingroup RTEMSBSPsARMSTM32H7 0464 * @{ 0465 */ 0466 #define LL_DMA2D_ALPHA_MODE_NO_MODIF 0x00000000U /*!< No modification of the alpha channel value */ 0467 #define LL_DMA2D_ALPHA_MODE_REPLACE DMA2D_FGPFCCR_AM_0 /*!< Replace original alpha channel value by 0468 programmed alpha value */ 0469 #define LL_DMA2D_ALPHA_MODE_COMBINE DMA2D_FGPFCCR_AM_1 /*!< Replace original alpha channel value by 0470 programmed alpha value with, 0471 original alpha channel value */ 0472 /** 0473 * @} 0474 */ 0475 0476 /** @defgroup DMA2D_LL_EC_OUTPUT_SWAP_MODE Swap Mode 0477 * @ingroup RTEMSBSPsARMSTM32H7 0478 * @{ 0479 */ 0480 #define LL_DMA2D_SWAP_MODE_REGULAR 0x00000000U /*!< Regular order */ 0481 #define LL_DMA2D_SWAP_MODE_TWO_BY_TWO DMA2D_OPFCCR_SB /*!< Bytes swapped two by two */ 0482 /** 0483 * @} 0484 */ 0485 0486 /** @defgroup DMA2D_LL_EC_RED_BLUE_SWAP Red Blue Swap 0487 * @ingroup RTEMSBSPsARMSTM32H7 0488 * @{ 0489 */ 0490 #define LL_DMA2D_RB_MODE_REGULAR 0x00000000U /*!< RGB or ARGB */ 0491 #define LL_DMA2D_RB_MODE_SWAP DMA2D_FGPFCCR_RBS /*!< BGR or ABGR */ 0492 /** 0493 * @} 0494 */ 0495 0496 /** @defgroup DMA2D_LL_EC_ALPHA_INVERSION Alpha Inversion 0497 * @ingroup RTEMSBSPsARMSTM32H7 0498 * @{ 0499 */ 0500 #define LL_DMA2D_ALPHA_REGULAR 0x00000000U /*!< Regular alpha */ 0501 #define LL_DMA2D_ALPHA_INVERTED DMA2D_FGPFCCR_AI /*!< Inverted alpha */ 0502 /** 0503 * @} 0504 */ 0505 0506 0507 /** @defgroup DMA2D_LL_EC_LINE_OFFSET_MODE Line Offset Mode 0508 * @ingroup RTEMSBSPsARMSTM32H7 0509 * @{ 0510 */ 0511 #define LL_DMA2D_LINE_OFFSET_PIXELS 0x00000000U /*!< Line offsets are expressed in pixels */ 0512 #define LL_DMA2D_LINE_OFFSET_BYTES DMA2D_CR_LOM /*!< Line offsets are expressed in bytes */ 0513 /** 0514 * @} 0515 */ 0516 0517 /** @defgroup DMA2D_LL_EC_CLUT_COLOR_MODE CLUT Color Mode 0518 * @ingroup RTEMSBSPsARMSTM32H7 0519 * @{ 0520 */ 0521 #define LL_DMA2D_CLUT_COLOR_MODE_ARGB8888 0x00000000U /*!< ARGB8888 */ 0522 #define LL_DMA2D_CLUT_COLOR_MODE_RGB888 DMA2D_FGPFCCR_CCM /*!< RGB888 */ 0523 /** 0524 * @} 0525 */ 0526 0527 /** @defgroup DMA2D_LL_CHROMA_SUB_SAMPLING Chroma Sub Sampling 0528 * @ingroup RTEMSBSPsARMSTM32H7 0529 * @{ 0530 */ 0531 #define LL_DMA2D_CSS_444 0x00000000U /*!< No chroma sub-sampling 4:4:4 */ 0532 #define LL_DMA2D_CSS_422 DMA2D_FGPFCCR_CSS_0 /*!< chroma sub-sampling 4:2:2 */ 0533 #define LL_DMA2D_CSS_420 DMA2D_FGPFCCR_CSS_1 /*!< chroma sub-sampling 4:2:0 */ 0534 /** 0535 * @} 0536 */ 0537 0538 /** 0539 * @} 0540 */ 0541 0542 /* Exported macro ------------------------------------------------------------*/ 0543 /** @defgroup DMA2D_LL_Exported_Macros DMA2D Exported Macros 0544 * @ingroup RTEMSBSPsARMSTM32H7 0545 * @{ 0546 */ 0547 0548 /** @defgroup DMA2D_LL_EM_WRITE_READ Common Write and read registers Macros 0549 * @ingroup RTEMSBSPsARMSTM32H7 0550 * @{ 0551 */ 0552 0553 /** 0554 * @brief Write a value in DMA2D register. 0555 * @param __INSTANCE__ DMA2D Instance 0556 * @param __REG__ Register to be written 0557 * @param __VALUE__ Value to be written in the register 0558 * @retval None 0559 */ 0560 #define LL_DMA2D_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG((__INSTANCE__)->__REG__, (__VALUE__)) 0561 0562 /** 0563 * @brief Read a value in DMA2D register. 0564 * @param __INSTANCE__ DMA2D Instance 0565 * @param __REG__ Register to be read 0566 * @retval Register value 0567 */ 0568 #define LL_DMA2D_ReadReg(__INSTANCE__, __REG__) READ_REG((__INSTANCE__)->__REG__) 0569 /** 0570 * @} 0571 */ 0572 0573 /** 0574 * @} 0575 */ 0576 0577 /* Exported functions --------------------------------------------------------*/ 0578 /** @defgroup DMA2D_LL_Exported_Functions DMA2D Exported Functions 0579 * @ingroup RTEMSBSPsARMSTM32H7 0580 * @{ 0581 */ 0582 0583 /** @defgroup DMA2D_LL_EF_Configuration Configuration Functions 0584 * @ingroup RTEMSBSPsARMSTM32H7 0585 * @{ 0586 */ 0587 0588 /** 0589 * @brief Start a DMA2D transfer. 0590 * @rmtoll CR START LL_DMA2D_Start 0591 * @param DMA2Dx DMA2D Instance 0592 * @retval None 0593 */ 0594 __STATIC_INLINE void LL_DMA2D_Start(DMA2D_TypeDef *DMA2Dx) 0595 { 0596 SET_BIT(DMA2Dx->CR, DMA2D_CR_START); 0597 } 0598 0599 /** 0600 * @brief Indicate if a DMA2D transfer is ongoing. 0601 * @rmtoll CR START LL_DMA2D_IsTransferOngoing 0602 * @param DMA2Dx DMA2D Instance 0603 * @retval State of bit (1 or 0). 0604 */ 0605 __STATIC_INLINE uint32_t LL_DMA2D_IsTransferOngoing(DMA2D_TypeDef *DMA2Dx) 0606 { 0607 return ((READ_BIT(DMA2Dx->CR, DMA2D_CR_START) == (DMA2D_CR_START)) ? 1UL : 0UL); 0608 } 0609 0610 /** 0611 * @brief Suspend DMA2D transfer. 0612 * @note This API can be used to suspend automatic foreground or background CLUT loading. 0613 * @rmtoll CR SUSP LL_DMA2D_Suspend 0614 * @param DMA2Dx DMA2D Instance 0615 * @retval None 0616 */ 0617 __STATIC_INLINE void LL_DMA2D_Suspend(DMA2D_TypeDef *DMA2Dx) 0618 { 0619 MODIFY_REG(DMA2Dx->CR, DMA2D_CR_SUSP | DMA2D_CR_START, DMA2D_CR_SUSP); 0620 } 0621 0622 /** 0623 * @brief Resume DMA2D transfer. 0624 * @note This API can be used to resume automatic foreground or background CLUT loading. 0625 * @rmtoll CR SUSP LL_DMA2D_Resume 0626 * @param DMA2Dx DMA2D Instance 0627 * @retval None 0628 */ 0629 __STATIC_INLINE void LL_DMA2D_Resume(DMA2D_TypeDef *DMA2Dx) 0630 { 0631 CLEAR_BIT(DMA2Dx->CR, DMA2D_CR_SUSP | DMA2D_CR_START); 0632 } 0633 0634 /** 0635 * @brief Indicate if DMA2D transfer is suspended. 0636 * @note This API can be used to indicate whether or not automatic foreground or 0637 * background CLUT loading is suspended. 0638 * @rmtoll CR SUSP LL_DMA2D_IsSuspended 0639 * @param DMA2Dx DMA2D Instance 0640 * @retval State of bit (1 or 0). 0641 */ 0642 __STATIC_INLINE uint32_t LL_DMA2D_IsSuspended(DMA2D_TypeDef *DMA2Dx) 0643 { 0644 return ((READ_BIT(DMA2Dx->CR, DMA2D_CR_SUSP) == (DMA2D_CR_SUSP)) ? 1UL : 0UL); 0645 } 0646 0647 /** 0648 * @brief Abort DMA2D transfer. 0649 * @note This API can be used to abort automatic foreground or background CLUT loading. 0650 * @rmtoll CR ABORT LL_DMA2D_Abort 0651 * @param DMA2Dx DMA2D Instance 0652 * @retval None 0653 */ 0654 __STATIC_INLINE void LL_DMA2D_Abort(DMA2D_TypeDef *DMA2Dx) 0655 { 0656 MODIFY_REG(DMA2Dx->CR, DMA2D_CR_ABORT | DMA2D_CR_START, DMA2D_CR_ABORT); 0657 } 0658 0659 /** 0660 * @brief Indicate if DMA2D transfer is aborted. 0661 * @note This API can be used to indicate whether or not automatic foreground or 0662 * background CLUT loading is aborted. 0663 * @rmtoll CR ABORT LL_DMA2D_IsAborted 0664 * @param DMA2Dx DMA2D Instance 0665 * @retval State of bit (1 or 0). 0666 */ 0667 __STATIC_INLINE uint32_t LL_DMA2D_IsAborted(DMA2D_TypeDef *DMA2Dx) 0668 { 0669 return ((READ_BIT(DMA2Dx->CR, DMA2D_CR_ABORT) == (DMA2D_CR_ABORT)) ? 1UL : 0UL); 0670 } 0671 0672 /** 0673 * @brief Set DMA2D mode. 0674 * @rmtoll CR MODE LL_DMA2D_SetMode 0675 * @param DMA2Dx DMA2D Instance 0676 * @param Mode This parameter can be one of the following values: 0677 * @arg @ref LL_DMA2D_MODE_M2M 0678 * @arg @ref LL_DMA2D_MODE_M2M_PFC 0679 * @arg @ref LL_DMA2D_MODE_M2M_BLEND 0680 * @arg @ref LL_DMA2D_MODE_R2M 0681 * @arg @ref LL_DMA2D_MODE_M2M_BLEND_FIXED_COLOR_FG 0682 * @arg @ref LL_DMA2D_MODE_M2M_BLEND_FIXED_COLOR_BG 0683 * @retval None 0684 */ 0685 __STATIC_INLINE void LL_DMA2D_SetMode(DMA2D_TypeDef *DMA2Dx, uint32_t Mode) 0686 { 0687 MODIFY_REG(DMA2Dx->CR, DMA2D_CR_MODE, Mode); 0688 } 0689 0690 /** 0691 * @brief Return DMA2D mode 0692 * @rmtoll CR MODE LL_DMA2D_GetMode 0693 * @param DMA2Dx DMA2D Instance 0694 * @retval Returned value can be one of the following values: 0695 * @arg @ref LL_DMA2D_MODE_M2M 0696 * @arg @ref LL_DMA2D_MODE_M2M_PFC 0697 * @arg @ref LL_DMA2D_MODE_M2M_BLEND 0698 * @arg @ref LL_DMA2D_MODE_R2M 0699 * @arg @ref LL_DMA2D_MODE_M2M_BLEND_FIXED_COLOR_FG 0700 * @arg @ref LL_DMA2D_MODE_M2M_BLEND_FIXED_COLOR_BG 0701 */ 0702 __STATIC_INLINE uint32_t LL_DMA2D_GetMode(DMA2D_TypeDef *DMA2Dx) 0703 { 0704 return (uint32_t)(READ_BIT(DMA2Dx->CR, DMA2D_CR_MODE)); 0705 } 0706 0707 /** 0708 * @brief Set DMA2D output color mode. 0709 * @rmtoll OPFCCR CM LL_DMA2D_SetOutputColorMode 0710 * @param DMA2Dx DMA2D Instance 0711 * @param ColorMode This parameter can be one of the following values: 0712 * @arg @ref LL_DMA2D_OUTPUT_MODE_ARGB8888 0713 * @arg @ref LL_DMA2D_OUTPUT_MODE_RGB888 0714 * @arg @ref LL_DMA2D_OUTPUT_MODE_RGB565 0715 * @arg @ref LL_DMA2D_OUTPUT_MODE_ARGB1555 0716 * @arg @ref LL_DMA2D_OUTPUT_MODE_ARGB4444 0717 * @retval None 0718 */ 0719 __STATIC_INLINE void LL_DMA2D_SetOutputColorMode(DMA2D_TypeDef *DMA2Dx, uint32_t ColorMode) 0720 { 0721 MODIFY_REG(DMA2Dx->OPFCCR, DMA2D_OPFCCR_CM, ColorMode); 0722 } 0723 0724 /** 0725 * @brief Return DMA2D output color mode. 0726 * @rmtoll OPFCCR CM LL_DMA2D_GetOutputColorMode 0727 * @param DMA2Dx DMA2D Instance 0728 * @retval Returned value can be one of the following values: 0729 * @arg @ref LL_DMA2D_OUTPUT_MODE_ARGB8888 0730 * @arg @ref LL_DMA2D_OUTPUT_MODE_RGB888 0731 * @arg @ref LL_DMA2D_OUTPUT_MODE_RGB565 0732 * @arg @ref LL_DMA2D_OUTPUT_MODE_ARGB1555 0733 * @arg @ref LL_DMA2D_OUTPUT_MODE_ARGB4444 0734 */ 0735 __STATIC_INLINE uint32_t LL_DMA2D_GetOutputColorMode(DMA2D_TypeDef *DMA2Dx) 0736 { 0737 return (uint32_t)(READ_BIT(DMA2Dx->OPFCCR, DMA2D_OPFCCR_CM)); 0738 } 0739 0740 /** 0741 * @brief Set DMA2D output Red Blue swap mode. 0742 * @rmtoll OPFCCR RBS LL_DMA2D_SetOutputRBSwapMode 0743 * @param DMA2Dx DMA2D Instance 0744 * @param RBSwapMode This parameter can be one of the following values: 0745 * @arg @ref LL_DMA2D_RB_MODE_REGULAR 0746 * @arg @ref LL_DMA2D_RB_MODE_SWAP 0747 * @retval None 0748 */ 0749 __STATIC_INLINE void LL_DMA2D_SetOutputRBSwapMode(DMA2D_TypeDef *DMA2Dx, uint32_t RBSwapMode) 0750 { 0751 MODIFY_REG(DMA2Dx->OPFCCR, DMA2D_OPFCCR_RBS, RBSwapMode); 0752 } 0753 0754 /** 0755 * @brief Return DMA2D output Red Blue swap mode. 0756 * @rmtoll OPFCCR RBS LL_DMA2D_GetOutputRBSwapMode 0757 * @param DMA2Dx DMA2D Instance 0758 * @retval Returned value can be one of the following values: 0759 * @arg @ref LL_DMA2D_RB_MODE_REGULAR 0760 * @arg @ref LL_DMA2D_RB_MODE_SWAP 0761 */ 0762 __STATIC_INLINE uint32_t LL_DMA2D_GetOutputRBSwapMode(DMA2D_TypeDef *DMA2Dx) 0763 { 0764 return (uint32_t)(READ_BIT(DMA2Dx->OPFCCR, DMA2D_OPFCCR_RBS)); 0765 } 0766 0767 /** 0768 * @brief Set DMA2D output alpha inversion mode. 0769 * @rmtoll OPFCCR AI LL_DMA2D_SetOutputAlphaInvMode 0770 * @param DMA2Dx DMA2D Instance 0771 * @param AlphaInversionMode This parameter can be one of the following values: 0772 * @arg @ref LL_DMA2D_ALPHA_REGULAR 0773 * @arg @ref LL_DMA2D_ALPHA_INVERTED 0774 * @retval None 0775 */ 0776 __STATIC_INLINE void LL_DMA2D_SetOutputAlphaInvMode(DMA2D_TypeDef *DMA2Dx, uint32_t AlphaInversionMode) 0777 { 0778 MODIFY_REG(DMA2Dx->OPFCCR, DMA2D_OPFCCR_AI, AlphaInversionMode); 0779 } 0780 0781 /** 0782 * @brief Return DMA2D output alpha inversion mode. 0783 * @rmtoll OPFCCR AI LL_DMA2D_GetOutputAlphaInvMode 0784 * @param DMA2Dx DMA2D Instance 0785 * @retval Returned value can be one of the following values: 0786 * @arg @ref LL_DMA2D_ALPHA_REGULAR 0787 * @arg @ref LL_DMA2D_ALPHA_INVERTED 0788 */ 0789 __STATIC_INLINE uint32_t LL_DMA2D_GetOutputAlphaInvMode(DMA2D_TypeDef *DMA2Dx) 0790 { 0791 return (uint32_t)(READ_BIT(DMA2Dx->OPFCCR, DMA2D_OPFCCR_AI)); 0792 } 0793 0794 0795 /** 0796 * @brief Set DMA2D output swap mode. 0797 * @rmtoll OPFCCR SB LL_DMA2D_SetOutputSwapMode 0798 * @param DMA2Dx DMA2D Instance 0799 * @param OutputSwapMode This parameter can be one of the following values: 0800 * @arg @ref LL_DMA2D_SWAP_MODE_REGULAR 0801 * @arg @ref LL_DMA2D_SWAP_MODE_TWO_BY_TWO 0802 * @retval None 0803 */ 0804 __STATIC_INLINE void LL_DMA2D_SetOutputSwapMode(DMA2D_TypeDef *DMA2Dx, uint32_t OutputSwapMode) 0805 { 0806 MODIFY_REG(DMA2Dx->OPFCCR, DMA2D_OPFCCR_SB, OutputSwapMode); 0807 } 0808 0809 /** 0810 * @brief Return DMA2D output swap mode. 0811 * @rmtoll OPFCCR SB LL_DMA2D_GetOutputSwapMode 0812 * @param DMA2Dx DMA2D Instance 0813 * @retval Returned value can be one of the following values: 0814 * @arg @ref LL_DMA2D_SWAP_MODE_REGULAR 0815 * @arg @ref LL_DMA2D_SWAP_MODE_TWO_BY_TWO 0816 */ 0817 __STATIC_INLINE uint32_t LL_DMA2D_GetOutputSwapMode(DMA2D_TypeDef *DMA2Dx) 0818 { 0819 return (uint32_t)(READ_BIT(DMA2Dx->OPFCCR, DMA2D_OPFCCR_SB)); 0820 } 0821 0822 /** 0823 * @brief Set DMA2D line offset mode. 0824 * @rmtoll CR LOM LL_DMA2D_SetLineOffsetMode 0825 * @param DMA2Dx DMA2D Instance 0826 * @param LineOffsetMode This parameter can be one of the following values: 0827 * @arg @ref LL_DMA2D_LINE_OFFSET_PIXELS 0828 * @arg @ref LL_DMA2D_LINE_OFFSET_BYTES 0829 * @retval None 0830 */ 0831 __STATIC_INLINE void LL_DMA2D_SetLineOffsetMode(DMA2D_TypeDef *DMA2Dx, uint32_t LineOffsetMode) 0832 { 0833 MODIFY_REG(DMA2Dx->CR, DMA2D_CR_LOM, LineOffsetMode); 0834 } 0835 0836 /** 0837 * @brief Return DMA2D line offset mode. 0838 * @rmtoll CR LOM LL_DMA2D_GetLineOffsetMode 0839 * @param DMA2Dx DMA2D Instance 0840 * @retval Returned value can be one of the following values: 0841 * @arg @ref LL_DMA2D_LINE_OFFSET_PIXELS 0842 * @arg @ref LL_DMA2D_LINE_OFFSET_BYTES 0843 */ 0844 __STATIC_INLINE uint32_t LL_DMA2D_GetLineOffsetMode(DMA2D_TypeDef *DMA2Dx) 0845 { 0846 return (uint32_t)(READ_BIT(DMA2Dx->CR, DMA2D_CR_LOM)); 0847 } 0848 0849 /** 0850 * @brief Set DMA2D line offset, expressed on 14 bits ([13:0] bits). 0851 * @rmtoll OOR LO LL_DMA2D_SetLineOffset 0852 * @param DMA2Dx DMA2D Instance 0853 * @param LineOffset Value between Min_Data=0 and Max_Data=0xFFFF 0854 * @retval None 0855 */ 0856 __STATIC_INLINE void LL_DMA2D_SetLineOffset(DMA2D_TypeDef *DMA2Dx, uint32_t LineOffset) 0857 { 0858 MODIFY_REG(DMA2Dx->OOR, DMA2D_OOR_LO, LineOffset); 0859 } 0860 0861 /** 0862 * @brief Return DMA2D line offset, expressed on 14 bits ([13:0] bits). 0863 * @rmtoll OOR LO LL_DMA2D_GetLineOffset 0864 * @param DMA2Dx DMA2D Instance 0865 * @retval Line offset value between Min_Data=0 and Max_Data=0xFFFF 0866 */ 0867 __STATIC_INLINE uint32_t LL_DMA2D_GetLineOffset(DMA2D_TypeDef *DMA2Dx) 0868 { 0869 return (uint32_t)(READ_BIT(DMA2Dx->OOR, DMA2D_OOR_LO)); 0870 } 0871 0872 /** 0873 * @brief Set DMA2D number of pixels per lines, expressed on 14 bits ([13:0] bits). 0874 * @rmtoll NLR PL LL_DMA2D_SetNbrOfPixelsPerLines 0875 * @param DMA2Dx DMA2D Instance 0876 * @param NbrOfPixelsPerLines Value between Min_Data=0 and Max_Data=0x3FFF 0877 * @retval None 0878 */ 0879 __STATIC_INLINE void LL_DMA2D_SetNbrOfPixelsPerLines(DMA2D_TypeDef *DMA2Dx, uint32_t NbrOfPixelsPerLines) 0880 { 0881 MODIFY_REG(DMA2Dx->NLR, DMA2D_NLR_PL, (NbrOfPixelsPerLines << DMA2D_NLR_PL_Pos)); 0882 } 0883 0884 /** 0885 * @brief Return DMA2D number of pixels per lines, expressed on 14 bits ([13:0] bits) 0886 * @rmtoll NLR PL LL_DMA2D_GetNbrOfPixelsPerLines 0887 * @param DMA2Dx DMA2D Instance 0888 * @retval Number of pixels per lines value between Min_Data=0 and Max_Data=0x3FFF 0889 */ 0890 __STATIC_INLINE uint32_t LL_DMA2D_GetNbrOfPixelsPerLines(DMA2D_TypeDef *DMA2Dx) 0891 { 0892 return (uint32_t)(READ_BIT(DMA2Dx->NLR, DMA2D_NLR_PL) >> DMA2D_NLR_PL_Pos); 0893 } 0894 0895 /** 0896 * @brief Set DMA2D number of lines, expressed on 16 bits ([15:0] bits). 0897 * @rmtoll NLR NL LL_DMA2D_SetNbrOfLines 0898 * @param DMA2Dx DMA2D Instance 0899 * @param NbrOfLines Value between Min_Data=0 and Max_Data=0xFFFF 0900 * @retval None 0901 */ 0902 __STATIC_INLINE void LL_DMA2D_SetNbrOfLines(DMA2D_TypeDef *DMA2Dx, uint32_t NbrOfLines) 0903 { 0904 MODIFY_REG(DMA2Dx->NLR, DMA2D_NLR_NL, NbrOfLines); 0905 } 0906 0907 /** 0908 * @brief Return DMA2D number of lines, expressed on 16 bits ([15:0] bits). 0909 * @rmtoll NLR NL LL_DMA2D_GetNbrOfLines 0910 * @param DMA2Dx DMA2D Instance 0911 * @retval Number of lines value between Min_Data=0 and Max_Data=0xFFFF 0912 */ 0913 __STATIC_INLINE uint32_t LL_DMA2D_GetNbrOfLines(DMA2D_TypeDef *DMA2Dx) 0914 { 0915 return (uint32_t)(READ_BIT(DMA2Dx->NLR, DMA2D_NLR_NL)); 0916 } 0917 0918 /** 0919 * @brief Set DMA2D output memory address, expressed on 32 bits ([31:0] bits). 0920 * @rmtoll OMAR MA LL_DMA2D_SetOutputMemAddr 0921 * @param DMA2Dx DMA2D Instance 0922 * @param OutputMemoryAddress Value between Min_Data=0 and Max_Data=0xFFFFFFFF 0923 * @retval None 0924 */ 0925 __STATIC_INLINE void LL_DMA2D_SetOutputMemAddr(DMA2D_TypeDef *DMA2Dx, uint32_t OutputMemoryAddress) 0926 { 0927 LL_DMA2D_WriteReg(DMA2Dx, OMAR, OutputMemoryAddress); 0928 } 0929 0930 /** 0931 * @brief Get DMA2D output memory address, expressed on 32 bits ([31:0] bits). 0932 * @rmtoll OMAR MA LL_DMA2D_GetOutputMemAddr 0933 * @param DMA2Dx DMA2D Instance 0934 * @retval Output memory address value between Min_Data=0 and Max_Data=0xFFFFFFFF 0935 */ 0936 __STATIC_INLINE uint32_t LL_DMA2D_GetOutputMemAddr(DMA2D_TypeDef *DMA2Dx) 0937 { 0938 return (uint32_t)(LL_DMA2D_ReadReg(DMA2Dx, OMAR)); 0939 } 0940 0941 /** 0942 * @brief Set DMA2D output color, expressed on 32 bits ([31:0] bits). 0943 * @note Output color format depends on output color mode, ARGB8888, RGB888, 0944 * RGB565, ARGB1555 or ARGB4444. 0945 * @note LL_DMA2D_ConfigOutputColor() API may be used instead if colors values formatting 0946 * with respect to color mode is not done by the user code. 0947 * @rmtoll OCOLR BLUE LL_DMA2D_SetOutputColor\n 0948 * OCOLR GREEN LL_DMA2D_SetOutputColor\n 0949 * OCOLR RED LL_DMA2D_SetOutputColor\n 0950 * OCOLR ALPHA LL_DMA2D_SetOutputColor 0951 * @param DMA2Dx DMA2D Instance 0952 * @param OutputColor Value between Min_Data=0 and Max_Data=0xFFFFFFFF 0953 * @retval None 0954 */ 0955 __STATIC_INLINE void LL_DMA2D_SetOutputColor(DMA2D_TypeDef *DMA2Dx, uint32_t OutputColor) 0956 { 0957 MODIFY_REG(DMA2Dx->OCOLR, (DMA2D_OCOLR_BLUE_1 | DMA2D_OCOLR_GREEN_1 | DMA2D_OCOLR_RED_1 | DMA2D_OCOLR_ALPHA_1), \ 0958 OutputColor); 0959 } 0960 0961 /** 0962 * @brief Get DMA2D output color, expressed on 32 bits ([31:0] bits). 0963 * @note Alpha channel and red, green, blue color values must be retrieved from the returned 0964 * value based on the output color mode (ARGB8888, RGB888, RGB565, ARGB1555 or ARGB4444) 0965 * as set by @ref LL_DMA2D_SetOutputColorMode. 0966 * @rmtoll OCOLR BLUE LL_DMA2D_GetOutputColor\n 0967 * OCOLR GREEN LL_DMA2D_GetOutputColor\n 0968 * OCOLR RED LL_DMA2D_GetOutputColor\n 0969 * OCOLR ALPHA LL_DMA2D_GetOutputColor 0970 * @param DMA2Dx DMA2D Instance 0971 * @retval Output color value between Min_Data=0 and Max_Data=0xFFFFFFFF 0972 */ 0973 __STATIC_INLINE uint32_t LL_DMA2D_GetOutputColor(DMA2D_TypeDef *DMA2Dx) 0974 { 0975 return (uint32_t)(READ_BIT(DMA2Dx->OCOLR, \ 0976 (DMA2D_OCOLR_BLUE_1 | DMA2D_OCOLR_GREEN_1 | DMA2D_OCOLR_RED_1 | DMA2D_OCOLR_ALPHA_1))); 0977 } 0978 0979 /** 0980 * @brief Set DMA2D line watermark, expressed on 16 bits ([15:0] bits). 0981 * @rmtoll LWR LW LL_DMA2D_SetLineWatermark 0982 * @param DMA2Dx DMA2D Instance 0983 * @param LineWatermark Value between Min_Data=0 and Max_Data=0xFFFF 0984 * @retval None 0985 */ 0986 __STATIC_INLINE void LL_DMA2D_SetLineWatermark(DMA2D_TypeDef *DMA2Dx, uint32_t LineWatermark) 0987 { 0988 MODIFY_REG(DMA2Dx->LWR, DMA2D_LWR_LW, LineWatermark); 0989 } 0990 0991 /** 0992 * @brief Return DMA2D line watermark, expressed on 16 bits ([15:0] bits). 0993 * @rmtoll LWR LW LL_DMA2D_GetLineWatermark 0994 * @param DMA2Dx DMA2D Instance 0995 * @retval Line watermark value between Min_Data=0 and Max_Data=0xFFFF 0996 */ 0997 __STATIC_INLINE uint32_t LL_DMA2D_GetLineWatermark(DMA2D_TypeDef *DMA2Dx) 0998 { 0999 return (uint32_t)(READ_BIT(DMA2Dx->LWR, DMA2D_LWR_LW)); 1000 } 1001 1002 /** 1003 * @brief Set DMA2D dead time, expressed on 8 bits ([7:0] bits). 1004 * @rmtoll AMTCR DT LL_DMA2D_SetDeadTime 1005 * @param DMA2Dx DMA2D Instance 1006 * @param DeadTime Value between Min_Data=0 and Max_Data=0xFF 1007 * @retval None 1008 */ 1009 __STATIC_INLINE void LL_DMA2D_SetDeadTime(DMA2D_TypeDef *DMA2Dx, uint32_t DeadTime) 1010 { 1011 MODIFY_REG(DMA2Dx->AMTCR, DMA2D_AMTCR_DT, (DeadTime << DMA2D_AMTCR_DT_Pos)); 1012 } 1013 1014 /** 1015 * @brief Return DMA2D dead time, expressed on 8 bits ([7:0] bits). 1016 * @rmtoll AMTCR DT LL_DMA2D_GetDeadTime 1017 * @param DMA2Dx DMA2D Instance 1018 * @retval Dead time value between Min_Data=0 and Max_Data=0xFF 1019 */ 1020 __STATIC_INLINE uint32_t LL_DMA2D_GetDeadTime(DMA2D_TypeDef *DMA2Dx) 1021 { 1022 return (uint32_t)(READ_BIT(DMA2Dx->AMTCR, DMA2D_AMTCR_DT) >> DMA2D_AMTCR_DT_Pos); 1023 } 1024 1025 /** 1026 * @brief Enable DMA2D dead time functionality. 1027 * @rmtoll AMTCR EN LL_DMA2D_EnableDeadTime 1028 * @param DMA2Dx DMA2D Instance 1029 * @retval None 1030 */ 1031 __STATIC_INLINE void LL_DMA2D_EnableDeadTime(DMA2D_TypeDef *DMA2Dx) 1032 { 1033 SET_BIT(DMA2Dx->AMTCR, DMA2D_AMTCR_EN); 1034 } 1035 1036 /** 1037 * @brief Disable DMA2D dead time functionality. 1038 * @rmtoll AMTCR EN LL_DMA2D_DisableDeadTime 1039 * @param DMA2Dx DMA2D Instance 1040 * @retval None 1041 */ 1042 __STATIC_INLINE void LL_DMA2D_DisableDeadTime(DMA2D_TypeDef *DMA2Dx) 1043 { 1044 CLEAR_BIT(DMA2Dx->AMTCR, DMA2D_AMTCR_EN); 1045 } 1046 1047 /** 1048 * @brief Indicate if DMA2D dead time functionality is enabled. 1049 * @rmtoll AMTCR EN LL_DMA2D_IsEnabledDeadTime 1050 * @param DMA2Dx DMA2D Instance 1051 * @retval State of bit (1 or 0). 1052 */ 1053 __STATIC_INLINE uint32_t LL_DMA2D_IsEnabledDeadTime(DMA2D_TypeDef *DMA2Dx) 1054 { 1055 return ((READ_BIT(DMA2Dx->AMTCR, DMA2D_AMTCR_EN) == (DMA2D_AMTCR_EN)) ? 1UL : 0UL); 1056 } 1057 1058 /** @defgroup DMA2D_LL_EF_FGND_Configuration Foreground Configuration Functions 1059 * @ingroup RTEMSBSPsARMSTM32H7 1060 * @{ 1061 */ 1062 1063 /** 1064 * @brief Set DMA2D foreground memory address, expressed on 32 bits ([31:0] bits). 1065 * @rmtoll FGMAR MA LL_DMA2D_FGND_SetMemAddr 1066 * @param DMA2Dx DMA2D Instance 1067 * @param MemoryAddress Value between Min_Data=0 and Max_Data=0xFFFFFFFF 1068 * @retval None 1069 */ 1070 __STATIC_INLINE void LL_DMA2D_FGND_SetMemAddr(DMA2D_TypeDef *DMA2Dx, uint32_t MemoryAddress) 1071 { 1072 LL_DMA2D_WriteReg(DMA2Dx, FGMAR, MemoryAddress); 1073 } 1074 1075 /** 1076 * @brief Get DMA2D foreground memory address, expressed on 32 bits ([31:0] bits). 1077 * @rmtoll FGMAR MA LL_DMA2D_FGND_GetMemAddr 1078 * @param DMA2Dx DMA2D Instance 1079 * @retval Foreground memory address value between Min_Data=0 and Max_Data=0xFFFFFFFF 1080 */ 1081 __STATIC_INLINE uint32_t LL_DMA2D_FGND_GetMemAddr(DMA2D_TypeDef *DMA2Dx) 1082 { 1083 return (uint32_t)(LL_DMA2D_ReadReg(DMA2Dx, FGMAR)); 1084 } 1085 1086 /** 1087 * @brief Enable DMA2D foreground CLUT loading. 1088 * @rmtoll FGPFCCR START LL_DMA2D_FGND_EnableCLUTLoad 1089 * @param DMA2Dx DMA2D Instance 1090 * @retval None 1091 */ 1092 __STATIC_INLINE void LL_DMA2D_FGND_EnableCLUTLoad(DMA2D_TypeDef *DMA2Dx) 1093 { 1094 SET_BIT(DMA2Dx->FGPFCCR, DMA2D_FGPFCCR_START); 1095 } 1096 1097 /** 1098 * @brief Indicate if DMA2D foreground CLUT loading is enabled. 1099 * @rmtoll FGPFCCR START LL_DMA2D_FGND_IsEnabledCLUTLoad 1100 * @param DMA2Dx DMA2D Instance 1101 * @retval State of bit (1 or 0). 1102 */ 1103 __STATIC_INLINE uint32_t LL_DMA2D_FGND_IsEnabledCLUTLoad(DMA2D_TypeDef *DMA2Dx) 1104 { 1105 return ((READ_BIT(DMA2Dx->FGPFCCR, DMA2D_FGPFCCR_START) == (DMA2D_FGPFCCR_START)) ? 1UL : 0UL); 1106 } 1107 1108 /** 1109 * @brief Set DMA2D foreground color mode. 1110 * @rmtoll FGPFCCR CM LL_DMA2D_FGND_SetColorMode 1111 * @param DMA2Dx DMA2D Instance 1112 * @param ColorMode This parameter can be one of the following values: 1113 * @arg @ref LL_DMA2D_INPUT_MODE_ARGB8888 1114 * @arg @ref LL_DMA2D_INPUT_MODE_RGB888 1115 * @arg @ref LL_DMA2D_INPUT_MODE_RGB565 1116 * @arg @ref LL_DMA2D_INPUT_MODE_ARGB1555 1117 * @arg @ref LL_DMA2D_INPUT_MODE_ARGB4444 1118 * @arg @ref LL_DMA2D_INPUT_MODE_L8 1119 * @arg @ref LL_DMA2D_INPUT_MODE_AL44 1120 * @arg @ref LL_DMA2D_INPUT_MODE_AL88 1121 * @arg @ref LL_DMA2D_INPUT_MODE_L4 1122 * @arg @ref LL_DMA2D_INPUT_MODE_A8 1123 * @arg @ref LL_DMA2D_INPUT_MODE_A4 1124 * @retval None 1125 */ 1126 __STATIC_INLINE void LL_DMA2D_FGND_SetColorMode(DMA2D_TypeDef *DMA2Dx, uint32_t ColorMode) 1127 { 1128 MODIFY_REG(DMA2Dx->FGPFCCR, DMA2D_FGPFCCR_CM, ColorMode); 1129 } 1130 1131 /** 1132 * @brief Return DMA2D foreground color mode. 1133 * @rmtoll FGPFCCR CM LL_DMA2D_FGND_GetColorMode 1134 * @param DMA2Dx DMA2D Instance 1135 * @retval Returned value can be one of the following values: 1136 * @arg @ref LL_DMA2D_INPUT_MODE_ARGB8888 1137 * @arg @ref LL_DMA2D_INPUT_MODE_RGB888 1138 * @arg @ref LL_DMA2D_INPUT_MODE_RGB565 1139 * @arg @ref LL_DMA2D_INPUT_MODE_ARGB1555 1140 * @arg @ref LL_DMA2D_INPUT_MODE_ARGB4444 1141 * @arg @ref LL_DMA2D_INPUT_MODE_L8 1142 * @arg @ref LL_DMA2D_INPUT_MODE_AL44 1143 * @arg @ref LL_DMA2D_INPUT_MODE_AL88 1144 * @arg @ref LL_DMA2D_INPUT_MODE_L4 1145 * @arg @ref LL_DMA2D_INPUT_MODE_A8 1146 * @arg @ref LL_DMA2D_INPUT_MODE_A4 1147 */ 1148 __STATIC_INLINE uint32_t LL_DMA2D_FGND_GetColorMode(DMA2D_TypeDef *DMA2Dx) 1149 { 1150 return (uint32_t)(READ_BIT(DMA2Dx->FGPFCCR, DMA2D_FGPFCCR_CM)); 1151 } 1152 1153 /** 1154 * @brief Set DMA2D foreground alpha mode. 1155 * @rmtoll FGPFCCR AM LL_DMA2D_FGND_SetAlphaMode 1156 * @param DMA2Dx DMA2D Instance 1157 * @param AphaMode This parameter can be one of the following values: 1158 * @arg @ref LL_DMA2D_ALPHA_MODE_NO_MODIF 1159 * @arg @ref LL_DMA2D_ALPHA_MODE_REPLACE 1160 * @arg @ref LL_DMA2D_ALPHA_MODE_COMBINE 1161 * @retval None 1162 */ 1163 __STATIC_INLINE void LL_DMA2D_FGND_SetAlphaMode(DMA2D_TypeDef *DMA2Dx, uint32_t AphaMode) 1164 { 1165 MODIFY_REG(DMA2Dx->FGPFCCR, DMA2D_FGPFCCR_AM, AphaMode); 1166 } 1167 1168 /** 1169 * @brief Return DMA2D foreground alpha mode. 1170 * @rmtoll FGPFCCR AM LL_DMA2D_FGND_GetAlphaMode 1171 * @param DMA2Dx DMA2D Instance 1172 * @retval Returned value can be one of the following values: 1173 * @arg @ref LL_DMA2D_ALPHA_MODE_NO_MODIF 1174 * @arg @ref LL_DMA2D_ALPHA_MODE_REPLACE 1175 * @arg @ref LL_DMA2D_ALPHA_MODE_COMBINE 1176 */ 1177 __STATIC_INLINE uint32_t LL_DMA2D_FGND_GetAlphaMode(DMA2D_TypeDef *DMA2Dx) 1178 { 1179 return (uint32_t)(READ_BIT(DMA2Dx->FGPFCCR, DMA2D_FGPFCCR_AM)); 1180 } 1181 1182 /** 1183 * @brief Set DMA2D foreground alpha value, expressed on 8 bits ([7:0] bits). 1184 * @rmtoll FGPFCCR ALPHA LL_DMA2D_FGND_SetAlpha 1185 * @param DMA2Dx DMA2D Instance 1186 * @param Alpha Value between Min_Data=0 and Max_Data=0xFF 1187 * @retval None 1188 */ 1189 __STATIC_INLINE void LL_DMA2D_FGND_SetAlpha(DMA2D_TypeDef *DMA2Dx, uint32_t Alpha) 1190 { 1191 MODIFY_REG(DMA2Dx->FGPFCCR, DMA2D_FGPFCCR_ALPHA, (Alpha << DMA2D_FGPFCCR_ALPHA_Pos)); 1192 } 1193 1194 /** 1195 * @brief Return DMA2D foreground alpha value, expressed on 8 bits ([7:0] bits). 1196 * @rmtoll FGPFCCR ALPHA LL_DMA2D_FGND_GetAlpha 1197 * @param DMA2Dx DMA2D Instance 1198 * @retval Alpha value between Min_Data=0 and Max_Data=0xFF 1199 */ 1200 __STATIC_INLINE uint32_t LL_DMA2D_FGND_GetAlpha(DMA2D_TypeDef *DMA2Dx) 1201 { 1202 return (uint32_t)(READ_BIT(DMA2Dx->FGPFCCR, DMA2D_FGPFCCR_ALPHA) >> DMA2D_FGPFCCR_ALPHA_Pos); 1203 } 1204 1205 /** 1206 * @brief Set DMA2D foreground Red Blue swap mode. 1207 * @rmtoll FGPFCCR RBS LL_DMA2D_FGND_SetRBSwapMode 1208 * @param DMA2Dx DMA2D Instance 1209 * @param RBSwapMode This parameter can be one of the following values: 1210 * @arg @ref LL_DMA2D_RB_MODE_REGULAR 1211 * @arg @ref LL_DMA2D_RB_MODE_SWAP 1212 * @retval None 1213 */ 1214 __STATIC_INLINE void LL_DMA2D_FGND_SetRBSwapMode(DMA2D_TypeDef *DMA2Dx, uint32_t RBSwapMode) 1215 { 1216 MODIFY_REG(DMA2Dx->FGPFCCR, DMA2D_FGPFCCR_RBS, RBSwapMode); 1217 } 1218 1219 /** 1220 * @brief Return DMA2D foreground Red Blue swap mode. 1221 * @rmtoll FGPFCCR RBS LL_DMA2D_FGND_GetRBSwapMode 1222 * @param DMA2Dx DMA2D Instance 1223 * @retval Returned value can be one of the following values: 1224 * @arg @ref LL_DMA2D_RB_MODE_REGULAR 1225 * @arg @ref LL_DMA2D_RB_MODE_SWAP 1226 */ 1227 __STATIC_INLINE uint32_t LL_DMA2D_FGND_GetRBSwapMode(DMA2D_TypeDef *DMA2Dx) 1228 { 1229 return (uint32_t)(READ_BIT(DMA2Dx->FGPFCCR, DMA2D_FGPFCCR_RBS)); 1230 } 1231 1232 /** 1233 * @brief Set DMA2D foreground alpha inversion mode. 1234 * @rmtoll FGPFCCR AI LL_DMA2D_FGND_SetAlphaInvMode 1235 * @param DMA2Dx DMA2D Instance 1236 * @param AlphaInversionMode This parameter can be one of the following values: 1237 * @arg @ref LL_DMA2D_ALPHA_REGULAR 1238 * @arg @ref LL_DMA2D_ALPHA_INVERTED 1239 * @retval None 1240 */ 1241 __STATIC_INLINE void LL_DMA2D_FGND_SetAlphaInvMode(DMA2D_TypeDef *DMA2Dx, uint32_t AlphaInversionMode) 1242 { 1243 MODIFY_REG(DMA2Dx->FGPFCCR, DMA2D_FGPFCCR_AI, AlphaInversionMode); 1244 } 1245 1246 /** 1247 * @brief Return DMA2D foreground alpha inversion mode. 1248 * @rmtoll FGPFCCR AI LL_DMA2D_FGND_GetAlphaInvMode 1249 * @param DMA2Dx DMA2D Instance 1250 * @retval Returned value can be one of the following values: 1251 * @arg @ref LL_DMA2D_ALPHA_REGULAR 1252 * @arg @ref LL_DMA2D_ALPHA_INVERTED 1253 */ 1254 __STATIC_INLINE uint32_t LL_DMA2D_FGND_GetAlphaInvMode(DMA2D_TypeDef *DMA2Dx) 1255 { 1256 return (uint32_t)(READ_BIT(DMA2Dx->FGPFCCR, DMA2D_FGPFCCR_AI)); 1257 } 1258 1259 /** 1260 * @brief Set DMA2D foreground line offset, expressed on 14 bits ([13:0] bits). 1261 * @rmtoll FGOR LO LL_DMA2D_FGND_SetLineOffset 1262 * @param DMA2Dx DMA2D Instance 1263 * @param LineOffset Value between Min_Data=0 and Max_Data=0x3FF 1264 * @retval None 1265 */ 1266 __STATIC_INLINE void LL_DMA2D_FGND_SetLineOffset(DMA2D_TypeDef *DMA2Dx, uint32_t LineOffset) 1267 { 1268 MODIFY_REG(DMA2Dx->FGOR, DMA2D_FGOR_LO, LineOffset); 1269 } 1270 1271 /** 1272 * @brief Return DMA2D foreground line offset, expressed on 14 bits ([13:0] bits). 1273 * @rmtoll FGOR LO LL_DMA2D_FGND_GetLineOffset 1274 * @param DMA2Dx DMA2D Instance 1275 * @retval Foreground line offset value between Min_Data=0 and Max_Data=0x3FF 1276 */ 1277 __STATIC_INLINE uint32_t LL_DMA2D_FGND_GetLineOffset(DMA2D_TypeDef *DMA2Dx) 1278 { 1279 return (uint32_t)(READ_BIT(DMA2Dx->FGOR, DMA2D_FGOR_LO)); 1280 } 1281 1282 /** 1283 * @brief Set DMA2D foreground color values, expressed on 24 bits ([23:0] bits). 1284 * @rmtoll FGCOLR RED LL_DMA2D_FGND_SetColor 1285 * @rmtoll FGCOLR GREEN LL_DMA2D_FGND_SetColor 1286 * @rmtoll FGCOLR BLUE LL_DMA2D_FGND_SetColor 1287 * @param DMA2Dx DMA2D Instance 1288 * @param Red Value between Min_Data=0 and Max_Data=0xFF 1289 * @param Green Value between Min_Data=0 and Max_Data=0xFF 1290 * @param Blue Value between Min_Data=0 and Max_Data=0xFF 1291 * @retval None 1292 */ 1293 __STATIC_INLINE void LL_DMA2D_FGND_SetColor(DMA2D_TypeDef *DMA2Dx, uint32_t Red, uint32_t Green, uint32_t Blue) 1294 { 1295 MODIFY_REG(DMA2Dx->FGCOLR, (DMA2D_FGCOLR_RED | DMA2D_FGCOLR_GREEN | DMA2D_FGCOLR_BLUE), \ 1296 ((Red << DMA2D_FGCOLR_RED_Pos) | (Green << DMA2D_FGCOLR_GREEN_Pos) | Blue)); 1297 } 1298 1299 /** 1300 * @brief Set DMA2D foreground red color value, expressed on 8 bits ([7:0] bits). 1301 * @rmtoll FGCOLR RED LL_DMA2D_FGND_SetRedColor 1302 * @param DMA2Dx DMA2D Instance 1303 * @param Red Value between Min_Data=0 and Max_Data=0xFF 1304 * @retval None 1305 */ 1306 __STATIC_INLINE void LL_DMA2D_FGND_SetRedColor(DMA2D_TypeDef *DMA2Dx, uint32_t Red) 1307 { 1308 MODIFY_REG(DMA2Dx->FGCOLR, DMA2D_FGCOLR_RED, (Red << DMA2D_FGCOLR_RED_Pos)); 1309 } 1310 1311 /** 1312 * @brief Return DMA2D foreground red color value, expressed on 8 bits ([7:0] bits). 1313 * @rmtoll FGCOLR RED LL_DMA2D_FGND_GetRedColor 1314 * @param DMA2Dx DMA2D Instance 1315 * @retval Red color value between Min_Data=0 and Max_Data=0xFF 1316 */ 1317 __STATIC_INLINE uint32_t LL_DMA2D_FGND_GetRedColor(DMA2D_TypeDef *DMA2Dx) 1318 { 1319 return (uint32_t)(READ_BIT(DMA2Dx->FGCOLR, DMA2D_FGCOLR_RED) >> DMA2D_FGCOLR_RED_Pos); 1320 } 1321 1322 /** 1323 * @brief Set DMA2D foreground green color value, expressed on 8 bits ([7:0] bits). 1324 * @rmtoll FGCOLR GREEN LL_DMA2D_FGND_SetGreenColor 1325 * @param DMA2Dx DMA2D Instance 1326 * @param Green Value between Min_Data=0 and Max_Data=0xFF 1327 * @retval None 1328 */ 1329 __STATIC_INLINE void LL_DMA2D_FGND_SetGreenColor(DMA2D_TypeDef *DMA2Dx, uint32_t Green) 1330 { 1331 MODIFY_REG(DMA2Dx->FGCOLR, DMA2D_FGCOLR_GREEN, (Green << DMA2D_FGCOLR_GREEN_Pos)); 1332 } 1333 1334 /** 1335 * @brief Return DMA2D foreground green color value, expressed on 8 bits ([7:0] bits). 1336 * @rmtoll FGCOLR GREEN LL_DMA2D_FGND_GetGreenColor 1337 * @param DMA2Dx DMA2D Instance 1338 * @retval Green color value between Min_Data=0 and Max_Data=0xFF 1339 */ 1340 __STATIC_INLINE uint32_t LL_DMA2D_FGND_GetGreenColor(DMA2D_TypeDef *DMA2Dx) 1341 { 1342 return (uint32_t)(READ_BIT(DMA2Dx->FGCOLR, DMA2D_FGCOLR_GREEN) >> DMA2D_FGCOLR_GREEN_Pos); 1343 } 1344 1345 /** 1346 * @brief Set DMA2D foreground blue color value, expressed on 8 bits ([7:0] bits). 1347 * @rmtoll FGCOLR BLUE LL_DMA2D_FGND_SetBlueColor 1348 * @param DMA2Dx DMA2D Instance 1349 * @param Blue Value between Min_Data=0 and Max_Data=0xFF 1350 * @retval None 1351 */ 1352 __STATIC_INLINE void LL_DMA2D_FGND_SetBlueColor(DMA2D_TypeDef *DMA2Dx, uint32_t Blue) 1353 { 1354 MODIFY_REG(DMA2Dx->FGCOLR, DMA2D_FGCOLR_BLUE, Blue); 1355 } 1356 1357 /** 1358 * @brief Return DMA2D foreground blue color value, expressed on 8 bits ([7:0] bits). 1359 * @rmtoll FGCOLR BLUE LL_DMA2D_FGND_GetBlueColor 1360 * @param DMA2Dx DMA2D Instance 1361 * @retval Blue color value between Min_Data=0 and Max_Data=0xFF 1362 */ 1363 __STATIC_INLINE uint32_t LL_DMA2D_FGND_GetBlueColor(DMA2D_TypeDef *DMA2Dx) 1364 { 1365 return (uint32_t)(READ_BIT(DMA2Dx->FGCOLR, DMA2D_FGCOLR_BLUE)); 1366 } 1367 1368 /** 1369 * @brief Set DMA2D foreground CLUT memory address, expressed on 32 bits ([31:0] bits). 1370 * @rmtoll FGCMAR MA LL_DMA2D_FGND_SetCLUTMemAddr 1371 * @param DMA2Dx DMA2D Instance 1372 * @param CLUTMemoryAddress Value between Min_Data=0 and Max_Data=0xFFFFFFFF 1373 * @retval None 1374 */ 1375 __STATIC_INLINE void LL_DMA2D_FGND_SetCLUTMemAddr(DMA2D_TypeDef *DMA2Dx, uint32_t CLUTMemoryAddress) 1376 { 1377 LL_DMA2D_WriteReg(DMA2Dx, FGCMAR, CLUTMemoryAddress); 1378 } 1379 1380 /** 1381 * @brief Get DMA2D foreground CLUT memory address, expressed on 32 bits ([31:0] bits). 1382 * @rmtoll FGCMAR MA LL_DMA2D_FGND_GetCLUTMemAddr 1383 * @param DMA2Dx DMA2D Instance 1384 * @retval Foreground CLUT memory address value between Min_Data=0 and Max_Data=0xFFFFFFFF 1385 */ 1386 __STATIC_INLINE uint32_t LL_DMA2D_FGND_GetCLUTMemAddr(DMA2D_TypeDef *DMA2Dx) 1387 { 1388 return (uint32_t)(LL_DMA2D_ReadReg(DMA2Dx, FGCMAR)); 1389 } 1390 1391 /** 1392 * @brief Set DMA2D foreground CLUT size, expressed on 8 bits ([7:0] bits). 1393 * @rmtoll FGPFCCR CS LL_DMA2D_FGND_SetCLUTSize 1394 * @param DMA2Dx DMA2D Instance 1395 * @param CLUTSize Value between Min_Data=0 and Max_Data=0xFF 1396 * @retval None 1397 */ 1398 __STATIC_INLINE void LL_DMA2D_FGND_SetCLUTSize(DMA2D_TypeDef *DMA2Dx, uint32_t CLUTSize) 1399 { 1400 MODIFY_REG(DMA2Dx->FGPFCCR, DMA2D_FGPFCCR_CS, (CLUTSize << DMA2D_FGPFCCR_CS_Pos)); 1401 } 1402 1403 /** 1404 * @brief Get DMA2D foreground CLUT size, expressed on 8 bits ([7:0] bits). 1405 * @rmtoll FGPFCCR CS LL_DMA2D_FGND_GetCLUTSize 1406 * @param DMA2Dx DMA2D Instance 1407 * @retval Foreground CLUT size value between Min_Data=0 and Max_Data=0xFF 1408 */ 1409 __STATIC_INLINE uint32_t LL_DMA2D_FGND_GetCLUTSize(DMA2D_TypeDef *DMA2Dx) 1410 { 1411 return (uint32_t)(READ_BIT(DMA2Dx->FGPFCCR, DMA2D_FGPFCCR_CS) >> DMA2D_FGPFCCR_CS_Pos); 1412 } 1413 1414 /** 1415 * @brief Set DMA2D foreground CLUT color mode. 1416 * @rmtoll FGPFCCR CCM LL_DMA2D_FGND_SetCLUTColorMode 1417 * @param DMA2Dx DMA2D Instance 1418 * @param CLUTColorMode This parameter can be one of the following values: 1419 * @arg @ref LL_DMA2D_CLUT_COLOR_MODE_ARGB8888 1420 * @arg @ref LL_DMA2D_CLUT_COLOR_MODE_RGB888 1421 * @retval None 1422 */ 1423 __STATIC_INLINE void LL_DMA2D_FGND_SetCLUTColorMode(DMA2D_TypeDef *DMA2Dx, uint32_t CLUTColorMode) 1424 { 1425 MODIFY_REG(DMA2Dx->FGPFCCR, DMA2D_FGPFCCR_CCM, CLUTColorMode); 1426 } 1427 1428 /** 1429 * @brief Return DMA2D foreground CLUT color mode. 1430 * @rmtoll FGPFCCR CCM LL_DMA2D_FGND_GetCLUTColorMode 1431 * @param DMA2Dx DMA2D Instance 1432 * @retval Returned value can be one of the following values: 1433 * @arg @ref LL_DMA2D_CLUT_COLOR_MODE_ARGB8888 1434 * @arg @ref LL_DMA2D_CLUT_COLOR_MODE_RGB888 1435 */ 1436 __STATIC_INLINE uint32_t LL_DMA2D_FGND_GetCLUTColorMode(DMA2D_TypeDef *DMA2Dx) 1437 { 1438 return (uint32_t)(READ_BIT(DMA2Dx->FGPFCCR, DMA2D_FGPFCCR_CCM)); 1439 } 1440 1441 /** 1442 * @brief Set DMA2D foreground Chroma Sub Sampling (for YCbCr input color mode). 1443 * @rmtoll FGPFCCR CSS LL_DMA2D_FGND_SetChrSubSampling 1444 * @param DMA2Dx DMA2D Instance 1445 * @param ChromaSubSampling This parameter can be one of the following values: 1446 * @arg @ref LL_DMA2D_CSS_444 1447 * @arg @ref LL_DMA2D_CSS_422 1448 * @arg @ref LL_DMA2D_CSS_420 1449 * @retval None 1450 */ 1451 __STATIC_INLINE void LL_DMA2D_FGND_SetChrSubSampling(DMA2D_TypeDef *DMA2Dx, uint32_t ChromaSubSampling) 1452 { 1453 MODIFY_REG(DMA2Dx->FGPFCCR, DMA2D_FGPFCCR_CSS, ChromaSubSampling); 1454 } 1455 1456 /** 1457 * @brief Return DMA2D foreground Chroma Sub Sampling (for YCbCr input color mode). 1458 * @rmtoll FGPFCCR CSS LL_DMA2D_FGND_GetChrSubSampling 1459 * @param DMA2Dx DMA2D Instance 1460 * @retval Returned value can be one of the following values: 1461 * @arg @ref LL_DMA2D_CSS_444 1462 * @arg @ref LL_DMA2D_CSS_422 1463 * @arg @ref LL_DMA2D_CSS_420 1464 */ 1465 __STATIC_INLINE uint32_t LL_DMA2D_FGND_GetChrSubSampling(DMA2D_TypeDef *DMA2Dx) 1466 { 1467 return (uint32_t)(READ_BIT(DMA2Dx->FGPFCCR, DMA2D_FGPFCCR_CSS)); 1468 } 1469 /** 1470 * @} 1471 */ 1472 1473 /** @defgroup DMA2D_LL_EF_BGND_Configuration Background Configuration Functions 1474 * @ingroup RTEMSBSPsARMSTM32H7 1475 * @{ 1476 */ 1477 1478 /** 1479 * @brief Set DMA2D background memory address, expressed on 32 bits ([31:0] bits). 1480 * @rmtoll BGMAR MA LL_DMA2D_BGND_SetMemAddr 1481 * @param DMA2Dx DMA2D Instance 1482 * @param MemoryAddress Value between Min_Data=0 and Max_Data=0xFFFFFFFF 1483 * @retval None 1484 */ 1485 __STATIC_INLINE void LL_DMA2D_BGND_SetMemAddr(DMA2D_TypeDef *DMA2Dx, uint32_t MemoryAddress) 1486 { 1487 LL_DMA2D_WriteReg(DMA2Dx, BGMAR, MemoryAddress); 1488 } 1489 1490 /** 1491 * @brief Get DMA2D background memory address, expressed on 32 bits ([31:0] bits). 1492 * @rmtoll BGMAR MA LL_DMA2D_BGND_GetMemAddr 1493 * @param DMA2Dx DMA2D Instance 1494 * @retval Background memory address value between Min_Data=0 and Max_Data=0xFFFFFFFF 1495 */ 1496 __STATIC_INLINE uint32_t LL_DMA2D_BGND_GetMemAddr(DMA2D_TypeDef *DMA2Dx) 1497 { 1498 return (uint32_t)(LL_DMA2D_ReadReg(DMA2Dx, BGMAR)); 1499 } 1500 1501 /** 1502 * @brief Enable DMA2D background CLUT loading. 1503 * @rmtoll BGPFCCR START LL_DMA2D_BGND_EnableCLUTLoad 1504 * @param DMA2Dx DMA2D Instance 1505 * @retval None 1506 */ 1507 __STATIC_INLINE void LL_DMA2D_BGND_EnableCLUTLoad(DMA2D_TypeDef *DMA2Dx) 1508 { 1509 SET_BIT(DMA2Dx->BGPFCCR, DMA2D_BGPFCCR_START); 1510 } 1511 1512 /** 1513 * @brief Indicate if DMA2D background CLUT loading is enabled. 1514 * @rmtoll BGPFCCR START LL_DMA2D_BGND_IsEnabledCLUTLoad 1515 * @param DMA2Dx DMA2D Instance 1516 * @retval State of bit (1 or 0). 1517 */ 1518 __STATIC_INLINE uint32_t LL_DMA2D_BGND_IsEnabledCLUTLoad(DMA2D_TypeDef *DMA2Dx) 1519 { 1520 return ((READ_BIT(DMA2Dx->BGPFCCR, DMA2D_BGPFCCR_START) == (DMA2D_BGPFCCR_START)) ? 1UL : 0UL); 1521 } 1522 1523 /** 1524 * @brief Set DMA2D background color mode. 1525 * @rmtoll BGPFCCR CM LL_DMA2D_BGND_SetColorMode 1526 * @param DMA2Dx DMA2D Instance 1527 * @param ColorMode This parameter can be one of the following values: 1528 * @arg @ref LL_DMA2D_INPUT_MODE_ARGB8888 1529 * @arg @ref LL_DMA2D_INPUT_MODE_RGB888 1530 * @arg @ref LL_DMA2D_INPUT_MODE_RGB565 1531 * @arg @ref LL_DMA2D_INPUT_MODE_ARGB1555 1532 * @arg @ref LL_DMA2D_INPUT_MODE_ARGB4444 1533 * @arg @ref LL_DMA2D_INPUT_MODE_L8 1534 * @arg @ref LL_DMA2D_INPUT_MODE_AL44 1535 * @arg @ref LL_DMA2D_INPUT_MODE_AL88 1536 * @arg @ref LL_DMA2D_INPUT_MODE_L4 1537 * @arg @ref LL_DMA2D_INPUT_MODE_A8 1538 * @arg @ref LL_DMA2D_INPUT_MODE_A4 1539 * @retval None 1540 */ 1541 __STATIC_INLINE void LL_DMA2D_BGND_SetColorMode(DMA2D_TypeDef *DMA2Dx, uint32_t ColorMode) 1542 { 1543 MODIFY_REG(DMA2Dx->BGPFCCR, DMA2D_BGPFCCR_CM, ColorMode); 1544 } 1545 1546 /** 1547 * @brief Return DMA2D background color mode. 1548 * @rmtoll BGPFCCR CM LL_DMA2D_BGND_GetColorMode 1549 * @param DMA2Dx DMA2D Instance 1550 * @retval Returned value can be one of the following values: 1551 * @arg @ref LL_DMA2D_INPUT_MODE_ARGB8888 1552 * @arg @ref LL_DMA2D_INPUT_MODE_RGB888 1553 * @arg @ref LL_DMA2D_INPUT_MODE_RGB565 1554 * @arg @ref LL_DMA2D_INPUT_MODE_ARGB1555 1555 * @arg @ref LL_DMA2D_INPUT_MODE_ARGB4444 1556 * @arg @ref LL_DMA2D_INPUT_MODE_L8 1557 * @arg @ref LL_DMA2D_INPUT_MODE_AL44 1558 * @arg @ref LL_DMA2D_INPUT_MODE_AL88 1559 * @arg @ref LL_DMA2D_INPUT_MODE_L4 1560 * @arg @ref LL_DMA2D_INPUT_MODE_A8 1561 * @arg @ref LL_DMA2D_INPUT_MODE_A4 1562 */ 1563 __STATIC_INLINE uint32_t LL_DMA2D_BGND_GetColorMode(DMA2D_TypeDef *DMA2Dx) 1564 { 1565 return (uint32_t)(READ_BIT(DMA2Dx->BGPFCCR, DMA2D_BGPFCCR_CM)); 1566 } 1567 1568 /** 1569 * @brief Set DMA2D background alpha mode. 1570 * @rmtoll BGPFCCR AM LL_DMA2D_BGND_SetAlphaMode 1571 * @param DMA2Dx DMA2D Instance 1572 * @param AphaMode This parameter can be one of the following values: 1573 * @arg @ref LL_DMA2D_ALPHA_MODE_NO_MODIF 1574 * @arg @ref LL_DMA2D_ALPHA_MODE_REPLACE 1575 * @arg @ref LL_DMA2D_ALPHA_MODE_COMBINE 1576 * @retval None 1577 */ 1578 __STATIC_INLINE void LL_DMA2D_BGND_SetAlphaMode(DMA2D_TypeDef *DMA2Dx, uint32_t AphaMode) 1579 { 1580 MODIFY_REG(DMA2Dx->BGPFCCR, DMA2D_BGPFCCR_AM, AphaMode); 1581 } 1582 1583 /** 1584 * @brief Return DMA2D background alpha mode. 1585 * @rmtoll BGPFCCR AM LL_DMA2D_BGND_GetAlphaMode 1586 * @param DMA2Dx DMA2D Instance 1587 * @retval Returned value can be one of the following values: 1588 * @arg @ref LL_DMA2D_ALPHA_MODE_NO_MODIF 1589 * @arg @ref LL_DMA2D_ALPHA_MODE_REPLACE 1590 * @arg @ref LL_DMA2D_ALPHA_MODE_COMBINE 1591 */ 1592 __STATIC_INLINE uint32_t LL_DMA2D_BGND_GetAlphaMode(DMA2D_TypeDef *DMA2Dx) 1593 { 1594 return (uint32_t)(READ_BIT(DMA2Dx->BGPFCCR, DMA2D_BGPFCCR_AM)); 1595 } 1596 1597 /** 1598 * @brief Set DMA2D background alpha value, expressed on 8 bits ([7:0] bits). 1599 * @rmtoll BGPFCCR ALPHA LL_DMA2D_BGND_SetAlpha 1600 * @param DMA2Dx DMA2D Instance 1601 * @param Alpha Value between Min_Data=0 and Max_Data=0xFF 1602 * @retval None 1603 */ 1604 __STATIC_INLINE void LL_DMA2D_BGND_SetAlpha(DMA2D_TypeDef *DMA2Dx, uint32_t Alpha) 1605 { 1606 MODIFY_REG(DMA2Dx->BGPFCCR, DMA2D_BGPFCCR_ALPHA, (Alpha << DMA2D_BGPFCCR_ALPHA_Pos)); 1607 } 1608 1609 /** 1610 * @brief Return DMA2D background alpha value, expressed on 8 bits ([7:0] bits). 1611 * @rmtoll BGPFCCR ALPHA LL_DMA2D_BGND_GetAlpha 1612 * @param DMA2Dx DMA2D Instance 1613 * @retval Alpha value between Min_Data=0 and Max_Data=0xFF 1614 */ 1615 __STATIC_INLINE uint32_t LL_DMA2D_BGND_GetAlpha(DMA2D_TypeDef *DMA2Dx) 1616 { 1617 return (uint32_t)(READ_BIT(DMA2Dx->BGPFCCR, DMA2D_BGPFCCR_ALPHA) >> DMA2D_BGPFCCR_ALPHA_Pos); 1618 } 1619 1620 /** 1621 * @brief Set DMA2D background Red Blue swap mode. 1622 * @rmtoll BGPFCCR RBS LL_DMA2D_BGND_SetRBSwapMode 1623 * @param DMA2Dx DMA2D Instance 1624 * @param RBSwapMode This parameter can be one of the following values: 1625 * @arg @ref LL_DMA2D_RB_MODE_REGULAR 1626 * @arg @ref LL_DMA2D_RB_MODE_SWAP 1627 * @retval None 1628 */ 1629 __STATIC_INLINE void LL_DMA2D_BGND_SetRBSwapMode(DMA2D_TypeDef *DMA2Dx, uint32_t RBSwapMode) 1630 { 1631 MODIFY_REG(DMA2Dx->BGPFCCR, DMA2D_BGPFCCR_RBS, RBSwapMode); 1632 } 1633 1634 /** 1635 * @brief Return DMA2D background Red Blue swap mode. 1636 * @rmtoll BGPFCCR RBS LL_DMA2D_BGND_GetRBSwapMode 1637 * @param DMA2Dx DMA2D Instance 1638 * @retval Returned value can be one of the following values: 1639 * @arg @ref LL_DMA2D_RB_MODE_REGULAR 1640 * @arg @ref LL_DMA2D_RB_MODE_SWAP 1641 */ 1642 __STATIC_INLINE uint32_t LL_DMA2D_BGND_GetRBSwapMode(DMA2D_TypeDef *DMA2Dx) 1643 { 1644 return (uint32_t)(READ_BIT(DMA2Dx->BGPFCCR, DMA2D_BGPFCCR_RBS)); 1645 } 1646 1647 /** 1648 * @brief Set DMA2D background alpha inversion mode. 1649 * @rmtoll BGPFCCR AI LL_DMA2D_BGND_SetAlphaInvMode 1650 * @param DMA2Dx DMA2D Instance 1651 * @param AlphaInversionMode This parameter can be one of the following values: 1652 * @arg @ref LL_DMA2D_ALPHA_REGULAR 1653 * @arg @ref LL_DMA2D_ALPHA_INVERTED 1654 * @retval None 1655 */ 1656 __STATIC_INLINE void LL_DMA2D_BGND_SetAlphaInvMode(DMA2D_TypeDef *DMA2Dx, uint32_t AlphaInversionMode) 1657 { 1658 MODIFY_REG(DMA2Dx->BGPFCCR, DMA2D_BGPFCCR_AI, AlphaInversionMode); 1659 } 1660 1661 /** 1662 * @brief Return DMA2D background alpha inversion mode. 1663 * @rmtoll BGPFCCR AI LL_DMA2D_BGND_GetAlphaInvMode 1664 * @param DMA2Dx DMA2D Instance 1665 * @retval Returned value can be one of the following values: 1666 * @arg @ref LL_DMA2D_ALPHA_REGULAR 1667 * @arg @ref LL_DMA2D_ALPHA_INVERTED 1668 */ 1669 __STATIC_INLINE uint32_t LL_DMA2D_BGND_GetAlphaInvMode(DMA2D_TypeDef *DMA2Dx) 1670 { 1671 return (uint32_t)(READ_BIT(DMA2Dx->BGPFCCR, DMA2D_BGPFCCR_AI)); 1672 } 1673 1674 /** 1675 * @brief Set DMA2D background line offset, expressed on 14 bits ([13:0] bits). 1676 * @rmtoll BGOR LO LL_DMA2D_BGND_SetLineOffset 1677 * @param DMA2Dx DMA2D Instance 1678 * @param LineOffset Value between Min_Data=0 and Max_Data=0x3FF 1679 * @retval None 1680 */ 1681 __STATIC_INLINE void LL_DMA2D_BGND_SetLineOffset(DMA2D_TypeDef *DMA2Dx, uint32_t LineOffset) 1682 { 1683 MODIFY_REG(DMA2Dx->BGOR, DMA2D_BGOR_LO, LineOffset); 1684 } 1685 1686 /** 1687 * @brief Return DMA2D background line offset, expressed on 14 bits ([13:0] bits). 1688 * @rmtoll BGOR LO LL_DMA2D_BGND_GetLineOffset 1689 * @param DMA2Dx DMA2D Instance 1690 * @retval Background line offset value between Min_Data=0 and Max_Data=0x3FF 1691 */ 1692 __STATIC_INLINE uint32_t LL_DMA2D_BGND_GetLineOffset(DMA2D_TypeDef *DMA2Dx) 1693 { 1694 return (uint32_t)(READ_BIT(DMA2Dx->BGOR, DMA2D_BGOR_LO)); 1695 } 1696 1697 /** 1698 * @brief Set DMA2D background color values, expressed on 24 bits ([23:0] bits). 1699 * @rmtoll BGCOLR RED LL_DMA2D_BGND_SetColor 1700 * @rmtoll BGCOLR GREEN LL_DMA2D_BGND_SetColor 1701 * @rmtoll BGCOLR BLUE LL_DMA2D_BGND_SetColor 1702 * @param DMA2Dx DMA2D Instance 1703 * @param Red Value between Min_Data=0 and Max_Data=0xFF 1704 * @param Green Value between Min_Data=0 and Max_Data=0xFF 1705 * @param Blue Value between Min_Data=0 and Max_Data=0xFF 1706 * @retval None 1707 */ 1708 __STATIC_INLINE void LL_DMA2D_BGND_SetColor(DMA2D_TypeDef *DMA2Dx, uint32_t Red, uint32_t Green, uint32_t Blue) 1709 { 1710 MODIFY_REG(DMA2Dx->BGCOLR, (DMA2D_BGCOLR_RED | DMA2D_BGCOLR_GREEN | DMA2D_BGCOLR_BLUE), \ 1711 ((Red << DMA2D_BGCOLR_RED_Pos) | (Green << DMA2D_BGCOLR_GREEN_Pos) | Blue)); 1712 } 1713 1714 /** 1715 * @brief Set DMA2D background red color value, expressed on 8 bits ([7:0] bits). 1716 * @rmtoll BGCOLR RED LL_DMA2D_BGND_SetRedColor 1717 * @param DMA2Dx DMA2D Instance 1718 * @param Red Value between Min_Data=0 and Max_Data=0xFF 1719 * @retval None 1720 */ 1721 __STATIC_INLINE void LL_DMA2D_BGND_SetRedColor(DMA2D_TypeDef *DMA2Dx, uint32_t Red) 1722 { 1723 MODIFY_REG(DMA2Dx->BGCOLR, DMA2D_BGCOLR_RED, (Red << DMA2D_BGCOLR_RED_Pos)); 1724 } 1725 1726 /** 1727 * @brief Return DMA2D background red color value, expressed on 8 bits ([7:0] bits). 1728 * @rmtoll BGCOLR RED LL_DMA2D_BGND_GetRedColor 1729 * @param DMA2Dx DMA2D Instance 1730 * @retval Red color value between Min_Data=0 and Max_Data=0xFF 1731 */ 1732 __STATIC_INLINE uint32_t LL_DMA2D_BGND_GetRedColor(DMA2D_TypeDef *DMA2Dx) 1733 { 1734 return (uint32_t)(READ_BIT(DMA2Dx->BGCOLR, DMA2D_BGCOLR_RED) >> DMA2D_BGCOLR_RED_Pos); 1735 } 1736 1737 /** 1738 * @brief Set DMA2D background green color value, expressed on 8 bits ([7:0] bits). 1739 * @rmtoll BGCOLR GREEN LL_DMA2D_BGND_SetGreenColor 1740 * @param DMA2Dx DMA2D Instance 1741 * @param Green Value between Min_Data=0 and Max_Data=0xFF 1742 * @retval None 1743 */ 1744 __STATIC_INLINE void LL_DMA2D_BGND_SetGreenColor(DMA2D_TypeDef *DMA2Dx, uint32_t Green) 1745 { 1746 MODIFY_REG(DMA2Dx->BGCOLR, DMA2D_BGCOLR_GREEN, (Green << DMA2D_BGCOLR_GREEN_Pos)); 1747 } 1748 1749 /** 1750 * @brief Return DMA2D background green color value, expressed on 8 bits ([7:0] bits). 1751 * @rmtoll BGCOLR GREEN LL_DMA2D_BGND_GetGreenColor 1752 * @param DMA2Dx DMA2D Instance 1753 * @retval Green color value between Min_Data=0 and Max_Data=0xFF 1754 */ 1755 __STATIC_INLINE uint32_t LL_DMA2D_BGND_GetGreenColor(DMA2D_TypeDef *DMA2Dx) 1756 { 1757 return (uint32_t)(READ_BIT(DMA2Dx->BGCOLR, DMA2D_BGCOLR_GREEN) >> DMA2D_BGCOLR_GREEN_Pos); 1758 } 1759 1760 /** 1761 * @brief Set DMA2D background blue color value, expressed on 8 bits ([7:0] bits). 1762 * @rmtoll BGCOLR BLUE LL_DMA2D_BGND_SetBlueColor 1763 * @param DMA2Dx DMA2D Instance 1764 * @param Blue Value between Min_Data=0 and Max_Data=0xFF 1765 * @retval None 1766 */ 1767 __STATIC_INLINE void LL_DMA2D_BGND_SetBlueColor(DMA2D_TypeDef *DMA2Dx, uint32_t Blue) 1768 { 1769 MODIFY_REG(DMA2Dx->BGCOLR, DMA2D_BGCOLR_BLUE, Blue); 1770 } 1771 1772 /** 1773 * @brief Return DMA2D background blue color value, expressed on 8 bits ([7:0] bits). 1774 * @rmtoll BGCOLR BLUE LL_DMA2D_BGND_GetBlueColor 1775 * @param DMA2Dx DMA2D Instance 1776 * @retval Blue color value between Min_Data=0 and Max_Data=0xFF 1777 */ 1778 __STATIC_INLINE uint32_t LL_DMA2D_BGND_GetBlueColor(DMA2D_TypeDef *DMA2Dx) 1779 { 1780 return (uint32_t)(READ_BIT(DMA2Dx->BGCOLR, DMA2D_BGCOLR_BLUE)); 1781 } 1782 1783 /** 1784 * @brief Set DMA2D background CLUT memory address, expressed on 32 bits ([31:0] bits). 1785 * @rmtoll BGCMAR MA LL_DMA2D_BGND_SetCLUTMemAddr 1786 * @param DMA2Dx DMA2D Instance 1787 * @param CLUTMemoryAddress Value between Min_Data=0 and Max_Data=0xFFFFFFFF 1788 * @retval None 1789 */ 1790 __STATIC_INLINE void LL_DMA2D_BGND_SetCLUTMemAddr(DMA2D_TypeDef *DMA2Dx, uint32_t CLUTMemoryAddress) 1791 { 1792 LL_DMA2D_WriteReg(DMA2Dx, BGCMAR, CLUTMemoryAddress); 1793 } 1794 1795 /** 1796 * @brief Get DMA2D background CLUT memory address, expressed on 32 bits ([31:0] bits). 1797 * @rmtoll BGCMAR MA LL_DMA2D_BGND_GetCLUTMemAddr 1798 * @param DMA2Dx DMA2D Instance 1799 * @retval Background CLUT memory address value between Min_Data=0 and Max_Data=0xFFFFFFFF 1800 */ 1801 __STATIC_INLINE uint32_t LL_DMA2D_BGND_GetCLUTMemAddr(DMA2D_TypeDef *DMA2Dx) 1802 { 1803 return (uint32_t)(LL_DMA2D_ReadReg(DMA2Dx, BGCMAR)); 1804 } 1805 1806 /** 1807 * @brief Set DMA2D background CLUT size, expressed on 8 bits ([7:0] bits). 1808 * @rmtoll BGPFCCR CS LL_DMA2D_BGND_SetCLUTSize 1809 * @param DMA2Dx DMA2D Instance 1810 * @param CLUTSize Value between Min_Data=0 and Max_Data=0xFF 1811 * @retval None 1812 */ 1813 __STATIC_INLINE void LL_DMA2D_BGND_SetCLUTSize(DMA2D_TypeDef *DMA2Dx, uint32_t CLUTSize) 1814 { 1815 MODIFY_REG(DMA2Dx->BGPFCCR, DMA2D_BGPFCCR_CS, (CLUTSize << DMA2D_BGPFCCR_CS_Pos)); 1816 } 1817 1818 /** 1819 * @brief Get DMA2D background CLUT size, expressed on 8 bits ([7:0] bits). 1820 * @rmtoll BGPFCCR CS LL_DMA2D_BGND_GetCLUTSize 1821 * @param DMA2Dx DMA2D Instance 1822 * @retval Background CLUT size value between Min_Data=0 and Max_Data=0xFF 1823 */ 1824 __STATIC_INLINE uint32_t LL_DMA2D_BGND_GetCLUTSize(DMA2D_TypeDef *DMA2Dx) 1825 { 1826 return (uint32_t)(READ_BIT(DMA2Dx->BGPFCCR, DMA2D_BGPFCCR_CS) >> DMA2D_BGPFCCR_CS_Pos); 1827 } 1828 1829 /** 1830 * @brief Set DMA2D background CLUT color mode. 1831 * @rmtoll BGPFCCR CCM LL_DMA2D_BGND_SetCLUTColorMode 1832 * @param DMA2Dx DMA2D Instance 1833 * @param CLUTColorMode This parameter can be one of the following values: 1834 * @arg @ref LL_DMA2D_CLUT_COLOR_MODE_ARGB8888 1835 * @arg @ref LL_DMA2D_CLUT_COLOR_MODE_RGB888 1836 * @retval None 1837 */ 1838 __STATIC_INLINE void LL_DMA2D_BGND_SetCLUTColorMode(DMA2D_TypeDef *DMA2Dx, uint32_t CLUTColorMode) 1839 { 1840 MODIFY_REG(DMA2Dx->BGPFCCR, DMA2D_BGPFCCR_CCM, CLUTColorMode); 1841 } 1842 1843 /** 1844 * @brief Return DMA2D background CLUT color mode. 1845 * @rmtoll BGPFCCR CCM LL_DMA2D_BGND_GetCLUTColorMode 1846 * @param DMA2Dx DMA2D Instance 1847 * @retval Returned value can be one of the following values: 1848 * @arg @ref LL_DMA2D_CLUT_COLOR_MODE_ARGB8888 1849 * @arg @ref LL_DMA2D_CLUT_COLOR_MODE_RGB888 1850 */ 1851 __STATIC_INLINE uint32_t LL_DMA2D_BGND_GetCLUTColorMode(DMA2D_TypeDef *DMA2Dx) 1852 { 1853 return (uint32_t)(READ_BIT(DMA2Dx->BGPFCCR, DMA2D_BGPFCCR_CCM)); 1854 } 1855 1856 /** 1857 * @} 1858 */ 1859 1860 /** 1861 * @} 1862 */ 1863 1864 1865 /** @defgroup DMA2D_LL_EF_FLAG_MANAGEMENT Flag Management 1866 * @ingroup RTEMSBSPsARMSTM32H7 1867 * @{ 1868 */ 1869 1870 /** 1871 * @brief Check if the DMA2D Configuration Error Interrupt Flag is set or not 1872 * @rmtoll ISR CEIF LL_DMA2D_IsActiveFlag_CE 1873 * @param DMA2Dx DMA2D Instance 1874 * @retval State of bit (1 or 0). 1875 */ 1876 __STATIC_INLINE uint32_t LL_DMA2D_IsActiveFlag_CE(DMA2D_TypeDef *DMA2Dx) 1877 { 1878 return ((READ_BIT(DMA2Dx->ISR, DMA2D_ISR_CEIF) == (DMA2D_ISR_CEIF)) ? 1UL : 0UL); 1879 } 1880 1881 /** 1882 * @brief Check if the DMA2D CLUT Transfer Complete Interrupt Flag is set or not 1883 * @rmtoll ISR CTCIF LL_DMA2D_IsActiveFlag_CTC 1884 * @param DMA2Dx DMA2D Instance 1885 * @retval State of bit (1 or 0). 1886 */ 1887 __STATIC_INLINE uint32_t LL_DMA2D_IsActiveFlag_CTC(DMA2D_TypeDef *DMA2Dx) 1888 { 1889 return ((READ_BIT(DMA2Dx->ISR, DMA2D_ISR_CTCIF) == (DMA2D_ISR_CTCIF)) ? 1UL : 0UL); 1890 } 1891 1892 /** 1893 * @brief Check if the DMA2D CLUT Access Error Interrupt Flag is set or not 1894 * @rmtoll ISR CAEIF LL_DMA2D_IsActiveFlag_CAE 1895 * @param DMA2Dx DMA2D Instance 1896 * @retval State of bit (1 or 0). 1897 */ 1898 __STATIC_INLINE uint32_t LL_DMA2D_IsActiveFlag_CAE(DMA2D_TypeDef *DMA2Dx) 1899 { 1900 return ((READ_BIT(DMA2Dx->ISR, DMA2D_ISR_CAEIF) == (DMA2D_ISR_CAEIF)) ? 1UL : 0UL); 1901 } 1902 1903 /** 1904 * @brief Check if the DMA2D Transfer Watermark Interrupt Flag is set or not 1905 * @rmtoll ISR TWIF LL_DMA2D_IsActiveFlag_TW 1906 * @param DMA2Dx DMA2D Instance 1907 * @retval State of bit (1 or 0). 1908 */ 1909 __STATIC_INLINE uint32_t LL_DMA2D_IsActiveFlag_TW(DMA2D_TypeDef *DMA2Dx) 1910 { 1911 return ((READ_BIT(DMA2Dx->ISR, DMA2D_ISR_TWIF) == (DMA2D_ISR_TWIF)) ? 1UL : 0UL); 1912 } 1913 1914 /** 1915 * @brief Check if the DMA2D Transfer Complete Interrupt Flag is set or not 1916 * @rmtoll ISR TCIF LL_DMA2D_IsActiveFlag_TC 1917 * @param DMA2Dx DMA2D Instance 1918 * @retval State of bit (1 or 0). 1919 */ 1920 __STATIC_INLINE uint32_t LL_DMA2D_IsActiveFlag_TC(DMA2D_TypeDef *DMA2Dx) 1921 { 1922 return ((READ_BIT(DMA2Dx->ISR, DMA2D_ISR_TCIF) == (DMA2D_ISR_TCIF)) ? 1UL : 0UL); 1923 } 1924 1925 /** 1926 * @brief Check if the DMA2D Transfer Error Interrupt Flag is set or not 1927 * @rmtoll ISR TEIF LL_DMA2D_IsActiveFlag_TE 1928 * @param DMA2Dx DMA2D Instance 1929 * @retval State of bit (1 or 0). 1930 */ 1931 __STATIC_INLINE uint32_t LL_DMA2D_IsActiveFlag_TE(DMA2D_TypeDef *DMA2Dx) 1932 { 1933 return ((READ_BIT(DMA2Dx->ISR, DMA2D_ISR_TEIF) == (DMA2D_ISR_TEIF)) ? 1UL : 0UL); 1934 } 1935 1936 /** 1937 * @brief Clear DMA2D Configuration Error Interrupt Flag 1938 * @rmtoll IFCR CCEIF LL_DMA2D_ClearFlag_CE 1939 * @param DMA2Dx DMA2D Instance 1940 * @retval None 1941 */ 1942 __STATIC_INLINE void LL_DMA2D_ClearFlag_CE(DMA2D_TypeDef *DMA2Dx) 1943 { 1944 WRITE_REG(DMA2Dx->IFCR, DMA2D_IFCR_CCEIF); 1945 } 1946 1947 /** 1948 * @brief Clear DMA2D CLUT Transfer Complete Interrupt Flag 1949 * @rmtoll IFCR CCTCIF LL_DMA2D_ClearFlag_CTC 1950 * @param DMA2Dx DMA2D Instance 1951 * @retval None 1952 */ 1953 __STATIC_INLINE void LL_DMA2D_ClearFlag_CTC(DMA2D_TypeDef *DMA2Dx) 1954 { 1955 WRITE_REG(DMA2Dx->IFCR, DMA2D_IFCR_CCTCIF); 1956 } 1957 1958 /** 1959 * @brief Clear DMA2D CLUT Access Error Interrupt Flag 1960 * @rmtoll IFCR CAECIF LL_DMA2D_ClearFlag_CAE 1961 * @param DMA2Dx DMA2D Instance 1962 * @retval None 1963 */ 1964 __STATIC_INLINE void LL_DMA2D_ClearFlag_CAE(DMA2D_TypeDef *DMA2Dx) 1965 { 1966 WRITE_REG(DMA2Dx->IFCR, DMA2D_IFCR_CAECIF); 1967 } 1968 1969 /** 1970 * @brief Clear DMA2D Transfer Watermark Interrupt Flag 1971 * @rmtoll IFCR CTWIF LL_DMA2D_ClearFlag_TW 1972 * @param DMA2Dx DMA2D Instance 1973 * @retval None 1974 */ 1975 __STATIC_INLINE void LL_DMA2D_ClearFlag_TW(DMA2D_TypeDef *DMA2Dx) 1976 { 1977 WRITE_REG(DMA2Dx->IFCR, DMA2D_IFCR_CTWIF); 1978 } 1979 1980 /** 1981 * @brief Clear DMA2D Transfer Complete Interrupt Flag 1982 * @rmtoll IFCR CTCIF LL_DMA2D_ClearFlag_TC 1983 * @param DMA2Dx DMA2D Instance 1984 * @retval None 1985 */ 1986 __STATIC_INLINE void LL_DMA2D_ClearFlag_TC(DMA2D_TypeDef *DMA2Dx) 1987 { 1988 WRITE_REG(DMA2Dx->IFCR, DMA2D_IFCR_CTCIF); 1989 } 1990 1991 /** 1992 * @brief Clear DMA2D Transfer Error Interrupt Flag 1993 * @rmtoll IFCR CTEIF LL_DMA2D_ClearFlag_TE 1994 * @param DMA2Dx DMA2D Instance 1995 * @retval None 1996 */ 1997 __STATIC_INLINE void LL_DMA2D_ClearFlag_TE(DMA2D_TypeDef *DMA2Dx) 1998 { 1999 WRITE_REG(DMA2Dx->IFCR, DMA2D_IFCR_CTEIF); 2000 } 2001 2002 /** 2003 * @} 2004 */ 2005 2006 /** @defgroup DMA2D_LL_EF_IT_MANAGEMENT Interruption Management 2007 * @ingroup RTEMSBSPsARMSTM32H7 2008 * @{ 2009 */ 2010 2011 /** 2012 * @brief Enable Configuration Error Interrupt 2013 * @rmtoll CR CEIE LL_DMA2D_EnableIT_CE 2014 * @param DMA2Dx DMA2D Instance 2015 * @retval None 2016 */ 2017 __STATIC_INLINE void LL_DMA2D_EnableIT_CE(DMA2D_TypeDef *DMA2Dx) 2018 { 2019 SET_BIT(DMA2Dx->CR, DMA2D_CR_CEIE); 2020 } 2021 2022 /** 2023 * @brief Enable CLUT Transfer Complete Interrupt 2024 * @rmtoll CR CTCIE LL_DMA2D_EnableIT_CTC 2025 * @param DMA2Dx DMA2D Instance 2026 * @retval None 2027 */ 2028 __STATIC_INLINE void LL_DMA2D_EnableIT_CTC(DMA2D_TypeDef *DMA2Dx) 2029 { 2030 SET_BIT(DMA2Dx->CR, DMA2D_CR_CTCIE); 2031 } 2032 2033 /** 2034 * @brief Enable CLUT Access Error Interrupt 2035 * @rmtoll CR CAEIE LL_DMA2D_EnableIT_CAE 2036 * @param DMA2Dx DMA2D Instance 2037 * @retval None 2038 */ 2039 __STATIC_INLINE void LL_DMA2D_EnableIT_CAE(DMA2D_TypeDef *DMA2Dx) 2040 { 2041 SET_BIT(DMA2Dx->CR, DMA2D_CR_CAEIE); 2042 } 2043 2044 /** 2045 * @brief Enable Transfer Watermark Interrupt 2046 * @rmtoll CR TWIE LL_DMA2D_EnableIT_TW 2047 * @param DMA2Dx DMA2D Instance 2048 * @retval None 2049 */ 2050 __STATIC_INLINE void LL_DMA2D_EnableIT_TW(DMA2D_TypeDef *DMA2Dx) 2051 { 2052 SET_BIT(DMA2Dx->CR, DMA2D_CR_TWIE); 2053 } 2054 2055 /** 2056 * @brief Enable Transfer Complete Interrupt 2057 * @rmtoll CR TCIE LL_DMA2D_EnableIT_TC 2058 * @param DMA2Dx DMA2D Instance 2059 * @retval None 2060 */ 2061 __STATIC_INLINE void LL_DMA2D_EnableIT_TC(DMA2D_TypeDef *DMA2Dx) 2062 { 2063 SET_BIT(DMA2Dx->CR, DMA2D_CR_TCIE); 2064 } 2065 2066 /** 2067 * @brief Enable Transfer Error Interrupt 2068 * @rmtoll CR TEIE LL_DMA2D_EnableIT_TE 2069 * @param DMA2Dx DMA2D Instance 2070 * @retval None 2071 */ 2072 __STATIC_INLINE void LL_DMA2D_EnableIT_TE(DMA2D_TypeDef *DMA2Dx) 2073 { 2074 SET_BIT(DMA2Dx->CR, DMA2D_CR_TEIE); 2075 } 2076 2077 /** 2078 * @brief Disable Configuration Error Interrupt 2079 * @rmtoll CR CEIE LL_DMA2D_DisableIT_CE 2080 * @param DMA2Dx DMA2D Instance 2081 * @retval None 2082 */ 2083 __STATIC_INLINE void LL_DMA2D_DisableIT_CE(DMA2D_TypeDef *DMA2Dx) 2084 { 2085 CLEAR_BIT(DMA2Dx->CR, DMA2D_CR_CEIE); 2086 } 2087 2088 /** 2089 * @brief Disable CLUT Transfer Complete Interrupt 2090 * @rmtoll CR CTCIE LL_DMA2D_DisableIT_CTC 2091 * @param DMA2Dx DMA2D Instance 2092 * @retval None 2093 */ 2094 __STATIC_INLINE void LL_DMA2D_DisableIT_CTC(DMA2D_TypeDef *DMA2Dx) 2095 { 2096 CLEAR_BIT(DMA2Dx->CR, DMA2D_CR_CTCIE); 2097 } 2098 2099 /** 2100 * @brief Disable CLUT Access Error Interrupt 2101 * @rmtoll CR CAEIE LL_DMA2D_DisableIT_CAE 2102 * @param DMA2Dx DMA2D Instance 2103 * @retval None 2104 */ 2105 __STATIC_INLINE void LL_DMA2D_DisableIT_CAE(DMA2D_TypeDef *DMA2Dx) 2106 { 2107 CLEAR_BIT(DMA2Dx->CR, DMA2D_CR_CAEIE); 2108 } 2109 2110 /** 2111 * @brief Disable Transfer Watermark Interrupt 2112 * @rmtoll CR TWIE LL_DMA2D_DisableIT_TW 2113 * @param DMA2Dx DMA2D Instance 2114 * @retval None 2115 */ 2116 __STATIC_INLINE void LL_DMA2D_DisableIT_TW(DMA2D_TypeDef *DMA2Dx) 2117 { 2118 CLEAR_BIT(DMA2Dx->CR, DMA2D_CR_TWIE); 2119 } 2120 2121 /** 2122 * @brief Disable Transfer Complete Interrupt 2123 * @rmtoll CR TCIE LL_DMA2D_DisableIT_TC 2124 * @param DMA2Dx DMA2D Instance 2125 * @retval None 2126 */ 2127 __STATIC_INLINE void LL_DMA2D_DisableIT_TC(DMA2D_TypeDef *DMA2Dx) 2128 { 2129 CLEAR_BIT(DMA2Dx->CR, DMA2D_CR_TCIE); 2130 } 2131 2132 /** 2133 * @brief Disable Transfer Error Interrupt 2134 * @rmtoll CR TEIE LL_DMA2D_DisableIT_TE 2135 * @param DMA2Dx DMA2D Instance 2136 * @retval None 2137 */ 2138 __STATIC_INLINE void LL_DMA2D_DisableIT_TE(DMA2D_TypeDef *DMA2Dx) 2139 { 2140 CLEAR_BIT(DMA2Dx->CR, DMA2D_CR_TEIE); 2141 } 2142 2143 /** 2144 * @brief Check if the DMA2D Configuration Error interrupt source is enabled or disabled. 2145 * @rmtoll CR CEIE LL_DMA2D_IsEnabledIT_CE 2146 * @param DMA2Dx DMA2D Instance 2147 * @retval State of bit (1 or 0). 2148 */ 2149 __STATIC_INLINE uint32_t LL_DMA2D_IsEnabledIT_CE(DMA2D_TypeDef *DMA2Dx) 2150 { 2151 return ((READ_BIT(DMA2Dx->CR, DMA2D_CR_CEIE) == (DMA2D_CR_CEIE)) ? 1UL : 0UL); 2152 } 2153 2154 /** 2155 * @brief Check if the DMA2D CLUT Transfer Complete interrupt source is enabled or disabled. 2156 * @rmtoll CR CTCIE LL_DMA2D_IsEnabledIT_CTC 2157 * @param DMA2Dx DMA2D Instance 2158 * @retval State of bit (1 or 0). 2159 */ 2160 __STATIC_INLINE uint32_t LL_DMA2D_IsEnabledIT_CTC(DMA2D_TypeDef *DMA2Dx) 2161 { 2162 return ((READ_BIT(DMA2Dx->CR, DMA2D_CR_CTCIE) == (DMA2D_CR_CTCIE)) ? 1UL : 0UL); 2163 } 2164 2165 /** 2166 * @brief Check if the DMA2D CLUT Access Error interrupt source is enabled or disabled. 2167 * @rmtoll CR CAEIE LL_DMA2D_IsEnabledIT_CAE 2168 * @param DMA2Dx DMA2D Instance 2169 * @retval State of bit (1 or 0). 2170 */ 2171 __STATIC_INLINE uint32_t LL_DMA2D_IsEnabledIT_CAE(DMA2D_TypeDef *DMA2Dx) 2172 { 2173 return ((READ_BIT(DMA2Dx->CR, DMA2D_CR_CAEIE) == (DMA2D_CR_CAEIE)) ? 1UL : 0UL); 2174 } 2175 2176 /** 2177 * @brief Check if the DMA2D Transfer Watermark interrupt source is enabled or disabled. 2178 * @rmtoll CR TWIE LL_DMA2D_IsEnabledIT_TW 2179 * @param DMA2Dx DMA2D Instance 2180 * @retval State of bit (1 or 0). 2181 */ 2182 __STATIC_INLINE uint32_t LL_DMA2D_IsEnabledIT_TW(DMA2D_TypeDef *DMA2Dx) 2183 { 2184 return ((READ_BIT(DMA2Dx->CR, DMA2D_CR_TWIE) == (DMA2D_CR_TWIE)) ? 1UL : 0UL); 2185 } 2186 2187 /** 2188 * @brief Check if the DMA2D Transfer Complete interrupt source is enabled or disabled. 2189 * @rmtoll CR TCIE LL_DMA2D_IsEnabledIT_TC 2190 * @param DMA2Dx DMA2D Instance 2191 * @retval State of bit (1 or 0). 2192 */ 2193 __STATIC_INLINE uint32_t LL_DMA2D_IsEnabledIT_TC(DMA2D_TypeDef *DMA2Dx) 2194 { 2195 return ((READ_BIT(DMA2Dx->CR, DMA2D_CR_TCIE) == (DMA2D_CR_TCIE)) ? 1UL : 0UL); 2196 } 2197 2198 /** 2199 * @brief Check if the DMA2D Transfer Error interrupt source is enabled or disabled. 2200 * @rmtoll CR TEIE LL_DMA2D_IsEnabledIT_TE 2201 * @param DMA2Dx DMA2D Instance 2202 * @retval State of bit (1 or 0). 2203 */ 2204 __STATIC_INLINE uint32_t LL_DMA2D_IsEnabledIT_TE(DMA2D_TypeDef *DMA2Dx) 2205 { 2206 return ((READ_BIT(DMA2Dx->CR, DMA2D_CR_TEIE) == (DMA2D_CR_TEIE)) ? 1UL : 0UL); 2207 } 2208 2209 2210 2211 /** 2212 * @} 2213 */ 2214 2215 #if defined(USE_FULL_LL_DRIVER) || defined(__rtems__) 2216 /** @defgroup DMA2D_LL_EF_Init_Functions Initialization and De-initialization Functions 2217 * @ingroup RTEMSBSPsARMSTM32H7 2218 * @{ 2219 */ 2220 2221 ErrorStatus LL_DMA2D_DeInit(DMA2D_TypeDef *DMA2Dx); 2222 ErrorStatus LL_DMA2D_Init(DMA2D_TypeDef *DMA2Dx, LL_DMA2D_InitTypeDef *DMA2D_InitStruct); 2223 void LL_DMA2D_StructInit(LL_DMA2D_InitTypeDef *DMA2D_InitStruct); 2224 void LL_DMA2D_ConfigLayer(DMA2D_TypeDef *DMA2Dx, LL_DMA2D_LayerCfgTypeDef *DMA2D_LayerCfg, uint32_t LayerIdx); 2225 void LL_DMA2D_LayerCfgStructInit(LL_DMA2D_LayerCfgTypeDef *DMA2D_LayerCfg); 2226 void LL_DMA2D_ConfigOutputColor(DMA2D_TypeDef *DMA2Dx, LL_DMA2D_ColorTypeDef *DMA2D_ColorStruct); 2227 uint32_t LL_DMA2D_GetOutputBlueColor(DMA2D_TypeDef *DMA2Dx, uint32_t ColorMode); 2228 uint32_t LL_DMA2D_GetOutputGreenColor(DMA2D_TypeDef *DMA2Dx, uint32_t ColorMode); 2229 uint32_t LL_DMA2D_GetOutputRedColor(DMA2D_TypeDef *DMA2Dx, uint32_t ColorMode); 2230 uint32_t LL_DMA2D_GetOutputAlphaColor(DMA2D_TypeDef *DMA2Dx, uint32_t ColorMode); 2231 void LL_DMA2D_ConfigSize(DMA2D_TypeDef *DMA2Dx, uint32_t NbrOfLines, uint32_t NbrOfPixelsPerLines); 2232 2233 /** 2234 * @} 2235 */ 2236 #endif /* USE_FULL_LL_DRIVER */ 2237 2238 /** 2239 * @} 2240 */ 2241 2242 /** 2243 * @} 2244 */ 2245 2246 #endif /* defined (DMA2D) */ 2247 2248 /** 2249 * @} 2250 */ 2251 2252 #ifdef __cplusplus 2253 } 2254 #endif 2255 2256 #endif /* STM32H7xx_LL_DMA2D_H */
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
![]() ![]() |