1 /** 2 ****************************************************************************** 3 * @file stm32f7xx_hal_ltdc.h 4 * @author MCD Application Team 5 * @version V1.0.1 6 * @date 25-June-2015 7 * @brief Header file of LTDC HAL module. 8 ****************************************************************************** 9 * @attention 10 * 11 * <h2><center>© COPYRIGHT(c) 2015 STMicroelectronics</center></h2> 12 * 13 * Redistribution and use in source and binary forms, with or without modification, 14 * are permitted provided that the following conditions are met: 15 * 1. Redistributions of source code must retain the above copyright notice, 16 * this list of conditions and the following disclaimer. 17 * 2. Redistributions in binary form must reproduce the above copyright notice, 18 * this list of conditions and the following disclaimer in the documentation 19 * and/or other materials provided with the distribution. 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors 21 * may be used to endorse or promote products derived from this software 22 * without specific prior written permission. 23 * 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 34 * 35 ****************************************************************************** 36 */ 37 38 /* Define to prevent recursive inclusion -------------------------------------*/ 39 #ifndef __STM32F7xx_HAL_LTDC_H 40 #define __STM32F7xx_HAL_LTDC_H 41 42 #ifdef __cplusplus 43 extern "C" { 44 #endif 45 46 #if defined(STM32F756xx) || defined(STM32F746xx) 47 /* Includes ------------------------------------------------------------------*/ 48 #include "stm32f7xx_hal_def.h" 49 50 51 /** @addtogroup STM32F7xx_HAL_Driver 52 * @{ 53 */ 54 55 /** @defgroup LTDC LTDC 56 * @brief LTDC HAL module driver 57 * @{ 58 */ 59 60 /* Exported types ------------------------------------------------------------*/ 61 /** @defgroup LTDC_Exported_Types LTDC Exported Types 62 * @{ 63 */ 64 #define MAX_LAYER 2 65 66 /** 67 * @brief LTDC color structure definition 68 */ 69 typedef struct { 70 uint8_t Blue; /*!< Configures the blue value. 71 This parameter must be a number between Min_Data = 0x00 and Max_Data = 0xFF. */ 72 73 uint8_t Green; /*!< Configures the green value. 74 This parameter must be a number between Min_Data = 0x00 and Max_Data = 0xFF. */ 75 76 uint8_t Red; /*!< Configures the red value. 77 This parameter must be a number between Min_Data = 0x00 and Max_Data = 0xFF. */ 78 79 uint8_t Reserved; /*!< Reserved 0xFF */ 80 } LTDC_ColorTypeDef; 81 82 /** 83 * @brief LTDC Init structure definition 84 */ 85 typedef struct { 86 uint32_t HSPolarity; /*!< configures the horizontal synchronization polarity. 87 This parameter can be one value of @ref LTDC_HS_POLARITY */ 88 89 uint32_t VSPolarity; /*!< configures the vertical synchronization polarity. 90 This parameter can be one value of @ref LTDC_VS_POLARITY */ 91 92 uint32_t DEPolarity; /*!< configures the data enable polarity. 93 This parameter can be one of value of @ref LTDC_DE_POLARITY */ 94 95 uint32_t PCPolarity; /*!< configures the pixel clock polarity. 96 This parameter can be one of value of @ref LTDC_PC_POLARITY */ 97 98 uint32_t HorizontalSync; /*!< configures the number of Horizontal synchronization width. 99 This parameter must be a number between Min_Data = 0x000 and Max_Data = 0xFFF. */ 100 101 uint32_t VerticalSync; /*!< configures the number of Vertical synchronization height. 102 This parameter must be a number between Min_Data = 0x000 and Max_Data = 0x7FF. */ 103 104 uint32_t AccumulatedHBP; /*!< configures the accumulated horizontal back porch width. 105 This parameter must be a number between Min_Data = LTDC_HorizontalSync and Max_Data = 0xFFF. */ 106 107 uint32_t AccumulatedVBP; /*!< configures the accumulated vertical back porch height. 108 This parameter must be a number between Min_Data = LTDC_VerticalSync and Max_Data = 0x7FF. */ 109 110 uint32_t AccumulatedActiveW; /*!< configures the accumulated active width. 111 This parameter must be a number between Min_Data = LTDC_AccumulatedHBP and Max_Data = 0xFFF. */ 112 113 uint32_t AccumulatedActiveH; /*!< configures the accumulated active height. 114 This parameter must be a number between Min_Data = LTDC_AccumulatedVBP and Max_Data = 0x7FF. */ 115 116 uint32_t TotalWidth; /*!< configures the total width. 117 This parameter must be a number between Min_Data = LTDC_AccumulatedActiveW and Max_Data = 0xFFF. */ 118 119 uint32_t TotalHeigh; /*!< configures the total height. 120 This parameter must be a number between Min_Data = LTDC_AccumulatedActiveH and Max_Data = 0x7FF. */ 121 122 LTDC_ColorTypeDef Backcolor; /*!< Configures the background color. */ 123 } LTDC_InitTypeDef; 124 125 /** 126 * @brief LTDC Layer structure definition 127 */ 128 typedef struct { 129 uint32_t WindowX0; /*!< Configures the Window Horizontal Start Position. 130 This parameter must be a number between Min_Data = 0x000 and Max_Data = 0xFFF. */ 131 132 uint32_t WindowX1; /*!< Configures the Window Horizontal Stop Position. 133 This parameter must be a number between Min_Data = 0x000 and Max_Data = 0xFFF. */ 134 135 uint32_t WindowY0; /*!< Configures the Window vertical Start Position. 136 This parameter must be a number between Min_Data = 0x000 and Max_Data = 0x7FF. */ 137 138 uint32_t WindowY1; /*!< Configures the Window vertical Stop Position. 139 This parameter must be a number between Min_Data = 0x0000 and Max_Data = 0x7FF. */ 140 141 uint32_t PixelFormat; /*!< Specifies the pixel format. 142 This parameter can be one of value of @ref LTDC_Pixelformat */ 143 144 uint32_t Alpha; /*!< Specifies the constant alpha used for blending. 145 This parameter must be a number between Min_Data = 0x00 and Max_Data = 0xFF. */ 146 147 uint32_t Alpha0; /*!< Configures the default alpha value. 148 This parameter must be a number between Min_Data = 0x00 and Max_Data = 0xFF. */ 149 150 uint32_t BlendingFactor1; /*!< Select the blending factor 1. 151 This parameter can be one of value of @ref LTDC_BlendingFactor1 */ 152 153 uint32_t BlendingFactor2; /*!< Select the blending factor 2. 154 This parameter can be one of value of @ref LTDC_BlendingFactor2 */ 155 156 uint32_t FBStartAdress; /*!< Configures the color frame buffer address */ 157 158 uint32_t ImageWidth; /*!< Configures the color frame buffer line length. 159 This parameter must be a number between Min_Data = 0x0000 and Max_Data = 0x1FFF. */ 160 161 uint32_t ImageHeight; /*!< Specifies the number of line in frame buffer. 162 This parameter must be a number between Min_Data = 0x000 and Max_Data = 0x7FF. */ 163 164 LTDC_ColorTypeDef Backcolor; /*!< Configures the layer background color. */ 165 } LTDC_LayerCfgTypeDef; 166 167 /** 168 * @brief HAL LTDC State structures definition 169 */ 170 typedef enum { 171 HAL_LTDC_STATE_RESET = 0x00, /*!< LTDC not yet initialized or disabled */ 172 HAL_LTDC_STATE_READY = 0x01, /*!< LTDC initialized and ready for use */ 173 HAL_LTDC_STATE_BUSY = 0x02, /*!< LTDC internal process is ongoing */ 174 HAL_LTDC_STATE_TIMEOUT = 0x03, /*!< LTDC Timeout state */ 175 HAL_LTDC_STATE_ERROR = 0x04 /*!< LTDC state error */ 176 } HAL_LTDC_StateTypeDef; 177 178 /** 179 * @brief LTDC handle Structure definition 180 */ 181 typedef struct { 182 LTDC_TypeDef *Instance; /*!< LTDC Register base address */ 183 184 LTDC_InitTypeDef Init; /*!< LTDC parameters */ 185 186 LTDC_LayerCfgTypeDef LayerCfg[MAX_LAYER]; /*!< LTDC Layers parameters */ 187 188 HAL_LockTypeDef Lock; /*!< LTDC Lock */ 189 190 __IO HAL_LTDC_StateTypeDef State; /*!< LTDC state */ 191 192 __IO uint32_t ErrorCode; /*!< LTDC Error code */ 193 194 } LTDC_HandleTypeDef; 195 /** 196 * @} 197 */ 198 199 /* Exported constants --------------------------------------------------------*/ 200 /** @defgroup LTDC_Exported_Constants LTDC Exported Constants 201 * @{ 202 */ 203 204 /** @defgroup LTDC_Error_Code LTDC Error Code 205 * @{ 206 */ 207 #define HAL_LTDC_ERROR_NONE ((uint32_t)0x00000000) /*!< LTDC No error */ 208 #define HAL_LTDC_ERROR_TE ((uint32_t)0x00000001) /*!< LTDC Transfer error */ 209 #define HAL_LTDC_ERROR_FU ((uint32_t)0x00000002) /*!< LTDC FIFO Underrun */ 210 #define HAL_LTDC_ERROR_TIMEOUT ((uint32_t)0x00000020) /*!< LTDC Timeout error */ 211 /** 212 * @} 213 */ 214 215 /** @defgroup LTDC_HS_POLARITY LTDC HS POLARITY 216 * @{ 217 */ 218 #define LTDC_HSPOLARITY_AL ((uint32_t)0x00000000) /*!< Horizontal Synchronization is active low. */ 219 #define LTDC_HSPOLARITY_AH LTDC_GCR_HSPOL /*!< Horizontal Synchronization is active high. */ 220 /** 221 * @} 222 */ 223 224 /** @defgroup LTDC_VS_POLARITY LTDC VS POLARITY 225 * @{ 226 */ 227 #define LTDC_VSPOLARITY_AL ((uint32_t)0x00000000) /*!< Vertical Synchronization is active low. */ 228 #define LTDC_VSPOLARITY_AH LTDC_GCR_VSPOL /*!< Vertical Synchronization is active high. */ 229 /** 230 * @} 231 */ 232 233 /** @defgroup LTDC_DE_POLARITY LTDC DE POLARITY 234 * @{ 235 */ 236 #define LTDC_DEPOLARITY_AL ((uint32_t)0x00000000) /*!< Data Enable, is active low. */ 237 #define LTDC_DEPOLARITY_AH LTDC_GCR_DEPOL /*!< Data Enable, is active high. */ 238 /** 239 * @} 240 */ 241 242 /** @defgroup LTDC_PC_POLARITY LTDC PC POLARITY 243 * @{ 244 */ 245 #define LTDC_PCPOLARITY_IPC ((uint32_t)0x00000000) /*!< input pixel clock. */ 246 #define LTDC_PCPOLARITY_IIPC LTDC_GCR_PCPOL /*!< inverted input pixel clock. */ 247 /** 248 * @} 249 */ 250 251 /** @defgroup LTDC_SYNC LTDC SYNC 252 * @{ 253 */ 254 #define LTDC_HORIZONTALSYNC (LTDC_SSCR_HSW >> 16) /*!< Horizontal synchronization width. */ 255 #define LTDC_VERTICALSYNC LTDC_SSCR_VSH /*!< Vertical synchronization height. */ 256 /** 257 * @} 258 */ 259 260 /** @defgroup LTDC_BACK_COLOR LTDC BACK COLOR 261 * @{ 262 */ 263 #define LTDC_COLOR ((uint32_t)0x000000FF) /*!< Color mask */ 264 /** 265 * @} 266 */ 267 268 /** @defgroup LTDC_BlendingFactor1 LTDC Blending Factor1 269 * @{ 270 */ 271 #define LTDC_BLENDING_FACTOR1_CA ((uint32_t)0x00000400) /*!< Blending factor : Cte Alpha */ 272 #define LTDC_BLENDING_FACTOR1_PAxCA ((uint32_t)0x00000600) /*!< Blending factor : Cte Alpha x Pixel Alpha*/ 273 /** 274 * @} 275 */ 276 277 /** @defgroup LTDC_BlendingFactor2 LTDC Blending Factor2 278 * @{ 279 */ 280 #define LTDC_BLENDING_FACTOR2_CA ((uint32_t)0x00000005) /*!< Blending factor : Cte Alpha */ 281 #define LTDC_BLENDING_FACTOR2_PAxCA ((uint32_t)0x00000007) /*!< Blending factor : Cte Alpha x Pixel Alpha*/ 282 /** 283 * @} 284 */ 285 286 /** @defgroup LTDC_Pixelformat LTDC Pixel format 287 * @{ 288 */ 289 #define LTDC_PIXEL_FORMAT_ARGB8888 ((uint32_t)0x00000000) /*!< ARGB8888 LTDC pixel format */ 290 #define LTDC_PIXEL_FORMAT_RGB888 ((uint32_t)0x00000001) /*!< RGB888 LTDC pixel format */ 291 #define LTDC_PIXEL_FORMAT_RGB565 ((uint32_t)0x00000002) /*!< RGB565 LTDC pixel format */ 292 #define LTDC_PIXEL_FORMAT_ARGB1555 ((uint32_t)0x00000003) /*!< ARGB1555 LTDC pixel format */ 293 #define LTDC_PIXEL_FORMAT_ARGB4444 ((uint32_t)0x00000004) /*!< ARGB4444 LTDC pixel format */ 294 #define LTDC_PIXEL_FORMAT_L8 ((uint32_t)0x00000005) /*!< L8 LTDC pixel format */ 295 #define LTDC_PIXEL_FORMAT_AL44 ((uint32_t)0x00000006) /*!< AL44 LTDC pixel format */ 296 #define LTDC_PIXEL_FORMAT_AL88 ((uint32_t)0x00000007) /*!< AL88 LTDC pixel format */ 297 /** 298 * @} 299 */ 300 301 /** @defgroup LTDC_Alpha LTDC Alpha 302 * @{ 303 */ 304 #define LTDC_ALPHA LTDC_LxCACR_CONSTA /*!< LTDC Cte Alpha mask */ 305 /** 306 * @} 307 */ 308 309 /** @defgroup LTDC_LAYER_Config LTDC LAYER Config 310 * @{ 311 */ 312 #define LTDC_STOPPOSITION (LTDC_LxWHPCR_WHSPPOS >> 16) /*!< LTDC Layer stop position */ 313 #define LTDC_STARTPOSITION LTDC_LxWHPCR_WHSTPOS /*!< LTDC Layer start position */ 314 315 #define LTDC_COLOR_FRAME_BUFFER LTDC_LxCFBLR_CFBLL /*!< LTDC Layer Line length */ 316 #define LTDC_LINE_NUMBER LTDC_LxCFBLNR_CFBLNBR /*!< LTDC Layer Line number */ 317 /** 318 * @} 319 */ 320 321 /** @defgroup LTDC_Interrupts LTDC Interrupts 322 * @{ 323 */ 324 #define LTDC_IT_LI LTDC_IER_LIE 325 #define LTDC_IT_FU LTDC_IER_FUIE 326 #define LTDC_IT_TE LTDC_IER_TERRIE 327 #define LTDC_IT_RR LTDC_IER_RRIE 328 /** 329 * @} 330 */ 331 332 /** @defgroup LTDC_Flag LTDC Flag 333 * @{ 334 */ 335 #define LTDC_FLAG_LI LTDC_ISR_LIF 336 #define LTDC_FLAG_FU LTDC_ISR_FUIF 337 #define LTDC_FLAG_TE LTDC_ISR_TERRIF 338 #define LTDC_FLAG_RR LTDC_ISR_RRIF 339 /** 340 * @} 341 */ 342 343 /** 344 * @} 345 */ 346 347 /* Exported macro ------------------------------------------------------------*/ 348 /** @defgroup LTDC_Exported_Macros LTDC Exported Macros 349 * @{ 350 */ 351 352 /** @brief Reset LTDC handle state 353 * @param __HANDLE__: specifies the LTDC handle. 354 * @retval None 355 */ 356 #define __HAL_LTDC_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_LTDC_STATE_RESET) 357 358 /** 359 * @brief Enable the LTDC. 360 * @param __HANDLE__: LTDC handle 361 * @retval None. 362 */ 363 #define __HAL_LTDC_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->GCR |= LTDC_GCR_LTDCEN) 364 365 /** 366 * @brief Disable the LTDC. 367 * @param __HANDLE__: LTDC handle 368 * @retval None. 369 */ 370 #define __HAL_LTDC_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->GCR &= ~(LTDC_GCR_LTDCEN)) 371 372 /** 373 * @brief Enable the LTDC Layer. 374 * @param __HANDLE__: LTDC handle 375 * @param __LAYER__: Specify the layer to be enabled 376 * This parameter can be 0 or 1 377 * @retval None. 378 */ 379 #define __HAL_LTDC_LAYER_ENABLE(__HANDLE__, __LAYER__) ((LTDC_LAYER((__HANDLE__), (__LAYER__)))->CR |= (uint32_t)LTDC_LxCR_LEN) 380 381 /** 382 * @brief Disable the LTDC Layer. 383 * @param __HANDLE__: LTDC handle 384 * @param __LAYER__: Specify the layer to be disabled 385 * This parameter can be 0 or 1 386 * @retval None. 387 */ 388 #define __HAL_LTDC_LAYER_DISABLE(__HANDLE__, __LAYER__) ((LTDC_LAYER((__HANDLE__), (__LAYER__)))->CR &= ~(uint32_t)LTDC_LxCR_LEN) 389 390 /** 391 * @brief Reload Layer Configuration. 392 * @param __HANDLE__: LTDC handle 393 * @retval None. 394 */ 395 #define __HAL_LTDC_RELOAD_CONFIG(__HANDLE__) ((__HANDLE__)->Instance->SRCR |= LTDC_SRCR_IMR) 396 397 /* Interrupt & Flag management */ 398 /** 399 * @brief Get the LTDC pending flags. 400 * @param __HANDLE__: LTDC handle 401 * @param __FLAG__: Get the specified flag. 402 * This parameter can be any combination of the following values: 403 * @arg LTDC_FLAG_LI: Line Interrupt flag 404 * @arg LTDC_FLAG_FU: FIFO Underrun Interrupt flag 405 * @arg LTDC_FLAG_TE: Transfer Error interrupt flag 406 * @arg LTDC_FLAG_RR: Register Reload Interrupt Flag 407 * @retval The state of FLAG (SET or RESET). 408 */ 409 #define __HAL_LTDC_GET_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ISR & (__FLAG__)) 410 411 /** 412 * @brief Clears the LTDC pending flags. 413 * @param __HANDLE__: LTDC handle 414 * @param __FLAG__: specifies the flag to clear. 415 * This parameter can be any combination of the following values: 416 * @arg LTDC_FLAG_LI: Line Interrupt flag 417 * @arg LTDC_FLAG_FU: FIFO Underrun Interrupt flag 418 * @arg LTDC_FLAG_TE: Transfer Error interrupt flag 419 * @arg LTDC_FLAG_RR: Register Reload Interrupt Flag 420 * @retval None 421 */ 422 #define __HAL_LTDC_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ICR = (__FLAG__)) 423 424 /** 425 * @brief Enables the specified LTDC interrupts. 426 * @param __HANDLE__: LTDC handle 427 * @param __INTERRUPT__: specifies the LTDC interrupt sources to be enabled. 428 * This parameter can be any combination of the following values: 429 * @arg LTDC_IT_LI: Line Interrupt flag 430 * @arg LTDC_IT_FU: FIFO Underrun Interrupt flag 431 * @arg LTDC_IT_TE: Transfer Error interrupt flag 432 * @arg LTDC_IT_RR: Register Reload Interrupt Flag 433 * @retval None 434 */ 435 #define __HAL_LTDC_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->IER |= (__INTERRUPT__)) 436 437 /** 438 * @brief Disables the specified LTDC interrupts. 439 * @param __HANDLE__: LTDC handle 440 * @param __INTERRUPT__: specifies the LTDC interrupt sources to be disabled. 441 * This parameter can be any combination of the following values: 442 * @arg LTDC_IT_LI: Line Interrupt flag 443 * @arg LTDC_IT_FU: FIFO Underrun Interrupt flag 444 * @arg LTDC_IT_TE: Transfer Error interrupt flag 445 * @arg LTDC_IT_RR: Register Reload Interrupt Flag 446 * @retval None 447 */ 448 #define __HAL_LTDC_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->IER &= ~(__INTERRUPT__)) 449 450 /** 451 * @brief Checks whether the specified LTDC interrupt has occurred or not. 452 * @param __HANDLE__: LTDC handle 453 * @param __INTERRUPT__: specifies the LTDC interrupt source to check. 454 * This parameter can be one of the following values: 455 * @arg LTDC_IT_LI: Line Interrupt flag 456 * @arg LTDC_IT_FU: FIFO Underrun Interrupt flag 457 * @arg LTDC_IT_TE: Transfer Error interrupt flag 458 * @arg LTDC_IT_RR: Register Reload Interrupt Flag 459 * @retval The state of INTERRUPT (SET or RESET). 460 */ 461 #define __HAL_LTDC_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->ISR & (__INTERRUPT__)) 462 /** 463 * @} 464 */ 465 466 /* Exported functions --------------------------------------------------------*/ 467 /** @addtogroup LTDC_Exported_Functions 468 * @{ 469 */ 470 /** @addtogroup LTDC_Exported_Functions_Group1 471 * @{ 472 */ 473 /* Initialization and de-initialization functions *****************************/ 474 HAL_StatusTypeDef HAL_LTDC_Init(LTDC_HandleTypeDef *hltdc); 475 HAL_StatusTypeDef HAL_LTDC_DeInit(LTDC_HandleTypeDef *hltdc); 476 void HAL_LTDC_MspInit(LTDC_HandleTypeDef* hltdc); 477 void HAL_LTDC_MspDeInit(LTDC_HandleTypeDef* hltdc); 478 void HAL_LTDC_ErrorCallback(LTDC_HandleTypeDef *hltdc); 479 void HAL_LTDC_LineEvenCallback(LTDC_HandleTypeDef *hltdc); 480 /** 481 * @} 482 */ 483 484 /** @addtogroup LTDC_Exported_Functions_Group2 485 * @{ 486 */ 487 /* IO operation functions *****************************************************/ 488 void HAL_LTDC_IRQHandler(LTDC_HandleTypeDef *hltdc); 489 /** 490 * @} 491 */ 492 493 /** @addtogroup LTDC_Exported_Functions_Group3 494 * @{ 495 */ 496 /* Peripheral Control functions ***********************************************/ 497 HAL_StatusTypeDef HAL_LTDC_ConfigLayer(LTDC_HandleTypeDef *hltdc, LTDC_LayerCfgTypeDef *pLayerCfg, uint32_t LayerIdx); 498 HAL_StatusTypeDef HAL_LTDC_SetWindowSize(LTDC_HandleTypeDef *hltdc, uint32_t XSize, uint32_t YSize, uint32_t LayerIdx); 499 HAL_StatusTypeDef HAL_LTDC_SetWindowPosition(LTDC_HandleTypeDef *hltdc, uint32_t X0, uint32_t Y0, uint32_t LayerIdx); 500 HAL_StatusTypeDef HAL_LTDC_SetPixelFormat(LTDC_HandleTypeDef *hltdc, uint32_t Pixelformat, uint32_t LayerIdx); 501 HAL_StatusTypeDef HAL_LTDC_SetAlpha(LTDC_HandleTypeDef *hltdc, uint32_t Alpha, uint32_t LayerIdx); 502 HAL_StatusTypeDef HAL_LTDC_SetAddress(LTDC_HandleTypeDef *hltdc, uint32_t Address, uint32_t LayerIdx); 503 HAL_StatusTypeDef HAL_LTDC_ConfigColorKeying(LTDC_HandleTypeDef *hltdc, uint32_t RGBValue, uint32_t LayerIdx); 504 HAL_StatusTypeDef HAL_LTDC_ConfigCLUT(LTDC_HandleTypeDef *hltdc, uint32_t *pCLUT, uint32_t CLUTSize, uint32_t LayerIdx); 505 HAL_StatusTypeDef HAL_LTDC_EnableColorKeying(LTDC_HandleTypeDef *hltdc, uint32_t LayerIdx); 506 HAL_StatusTypeDef HAL_LTDC_DisableColorKeying(LTDC_HandleTypeDef *hltdc, uint32_t LayerIdx); 507 HAL_StatusTypeDef HAL_LTDC_EnableCLUT(LTDC_HandleTypeDef *hltdc, uint32_t LayerIdx); 508 HAL_StatusTypeDef HAL_LTDC_DisableCLUT(LTDC_HandleTypeDef *hltdc, uint32_t LayerIdx); 509 HAL_StatusTypeDef HAL_LTDC_ProgramLineEvent(LTDC_HandleTypeDef *hltdc, uint32_t Line); 510 HAL_StatusTypeDef HAL_LTDC_EnableDither(LTDC_HandleTypeDef *hltdc); 511 HAL_StatusTypeDef HAL_LTDC_DisableDither(LTDC_HandleTypeDef *hltdc); 512 /** 513 * @} 514 */ 515 516 /** @addtogroup LTDC_Exported_Functions_Group4 517 * @{ 518 */ 519 /* Peripheral State functions *************************************************/ 520 HAL_LTDC_StateTypeDef HAL_LTDC_GetState(LTDC_HandleTypeDef *hltdc); 521 uint32_t HAL_LTDC_GetError(LTDC_HandleTypeDef *hltdc); 522 /** 523 * @} 524 */ 525 526 /** 527 * @} 528 */ 529 /* Private types -------------------------------------------------------------*/ 530 /** @defgroup LTDC_Private_Types LTDC Private Types 531 * @{ 532 */ 533 534 /** 535 * @} 536 */ 537 538 /* Private variables ---------------------------------------------------------*/ 539 /** @defgroup LTDC_Private_Variables LTDC Private Variables 540 * @{ 541 */ 542 543 /** 544 * @} 545 */ 546 547 /* Private constants ---------------------------------------------------------*/ 548 /** @defgroup LTDC_Private_Constants LTDC Private Constants 549 * @{ 550 */ 551 552 /** 553 * @} 554 */ 555 556 /* Private macros ------------------------------------------------------------*/ 557 /** @defgroup LTDC_Private_Macros LTDC Private Macros 558 * @{ 559 */ 560 #define LTDC_LAYER(__HANDLE__, __LAYER__) ((LTDC_Layer_TypeDef *)((uint32_t)(((uint32_t)((__HANDLE__)->Instance)) + 0x84 + (0x80*(__LAYER__))))) 561 #define IS_LTDC_LAYER(LAYER) ((LAYER) <= MAX_LAYER) 562 #define IS_LTDC_HSPOL(HSPOL) (((HSPOL) == LTDC_HSPOLARITY_AL) || \ 563 ((HSPOL) == LTDC_HSPOLARITY_AH)) 564 #define IS_LTDC_VSPOL(VSPOL) (((VSPOL) == LTDC_VSPOLARITY_AL) || \ 565 ((VSPOL) == LTDC_VSPOLARITY_AH)) 566 #define IS_LTDC_DEPOL(DEPOL) (((DEPOL) == LTDC_DEPOLARITY_AL) || \ 567 ((DEPOL) == LTDC_DEPOLARITY_AH)) 568 #define IS_LTDC_PCPOL(PCPOL) (((PCPOL) == LTDC_PCPOLARITY_IPC) || \ 569 ((PCPOL) == LTDC_PCPOLARITY_IIPC)) 570 #define IS_LTDC_HSYNC(HSYNC) ((HSYNC) <= LTDC_HORIZONTALSYNC) 571 #define IS_LTDC_VSYNC(VSYNC) ((VSYNC) <= LTDC_VERTICALSYNC) 572 #define IS_LTDC_AHBP(AHBP) ((AHBP) <= LTDC_HORIZONTALSYNC) 573 #define IS_LTDC_AVBP(AVBP) ((AVBP) <= LTDC_VERTICALSYNC) 574 #define IS_LTDC_AAW(AAW) ((AAW) <= LTDC_HORIZONTALSYNC) 575 #define IS_LTDC_AAH(AAH) ((AAH) <= LTDC_VERTICALSYNC) 576 #define IS_LTDC_TOTALW(TOTALW) ((TOTALW) <= LTDC_HORIZONTALSYNC) 577 #define IS_LTDC_TOTALH(TOTALH) ((TOTALH) <= LTDC_VERTICALSYNC) 578 #define IS_LTDC_BLUEVALUE(BBLUE) ((BBLUE) <= LTDC_COLOR) 579 #define IS_LTDC_GREENVALUE(BGREEN) ((BGREEN) <= LTDC_COLOR) 580 #define IS_LTDC_REDVALUE(BRED) ((BRED) <= LTDC_COLOR) 581 #define IS_LTDC_BLENDING_FACTOR1(BlendingFactor1) (((BlendingFactor1) == LTDC_BLENDING_FACTOR1_CA) || \ 582 ((BlendingFactor1) == LTDC_BLENDING_FACTOR1_PAxCA)) 583 #define IS_LTDC_BLENDING_FACTOR2(BlendingFactor2) (((BlendingFactor2) == LTDC_BLENDING_FACTOR2_CA) || \ 584 ((BlendingFactor2) == LTDC_BLENDING_FACTOR2_PAxCA)) 585 #define IS_LTDC_PIXEL_FORMAT(Pixelformat) (((Pixelformat) == LTDC_PIXEL_FORMAT_ARGB8888) || ((Pixelformat) == LTDC_PIXEL_FORMAT_RGB888) || \ 586 ((Pixelformat) == LTDC_PIXEL_FORMAT_RGB565) || ((Pixelformat) == LTDC_PIXEL_FORMAT_ARGB1555) || \ 587 ((Pixelformat) == LTDC_PIXEL_FORMAT_ARGB4444) || ((Pixelformat) == LTDC_PIXEL_FORMAT_L8) || \ 588 ((Pixelformat) == LTDC_PIXEL_FORMAT_AL44) || ((Pixelformat) == LTDC_PIXEL_FORMAT_AL88)) 589 #define IS_LTDC_ALPHA(ALPHA) ((ALPHA) <= LTDC_ALPHA) 590 #define IS_LTDC_HCONFIGST(HCONFIGST) ((HCONFIGST) <= LTDC_STARTPOSITION) 591 #define IS_LTDC_HCONFIGSP(HCONFIGSP) ((HCONFIGSP) <= LTDC_STOPPOSITION) 592 #define IS_LTDC_VCONFIGST(VCONFIGST) ((VCONFIGST) <= LTDC_STARTPOSITION) 593 #define IS_LTDC_VCONFIGSP(VCONFIGSP) ((VCONFIGSP) <= LTDC_STOPPOSITION) 594 #define IS_LTDC_CFBP(CFBP) ((CFBP) <= LTDC_COLOR_FRAME_BUFFER) 595 #define IS_LTDC_CFBLL(CFBLL) ((CFBLL) <= LTDC_COLOR_FRAME_BUFFER) 596 #define IS_LTDC_CFBLNBR(CFBLNBR) ((CFBLNBR) <= LTDC_LINE_NUMBER) 597 #define IS_LTDC_LIPOS(LIPOS) ((LIPOS) <= 0x7FF) 598 /** 599 * @} 600 */ 601 602 /* Private functions ---------------------------------------------------------*/ 603 /** @defgroup LTDC_Private_Functions LTDC Private Functions 604 * @{ 605 */ 606 607 /** 608 * @} 609 */ 610 611 /** 612 * @} 613 */ 614 #endif /* STM32F756xx || STM32F746xx */ 615 /** 616 * @} 617 */ 618 619 #ifdef __cplusplus 620 } 621 #endif 622 623 #endif /* __STM32F7xx_HAL_LTDC_H */ 624 625 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 626