169 #ifdef HAL_LTDC_MODULE_ENABLED
184 #define LTDC_TIMEOUT_VALUE ((uint32_t)100U)
231 assert_param(IS_LTDC_ALL_INSTANCE(hltdc->Instance));
232 assert_param(IS_LTDC_HSYNC(hltdc->Init.HorizontalSync));
233 assert_param(IS_LTDC_VSYNC(hltdc->Init.VerticalSync));
234 assert_param(IS_LTDC_AHBP(hltdc->Init.AccumulatedHBP));
235 assert_param(IS_LTDC_AVBP(hltdc->Init.AccumulatedVBP));
236 assert_param(IS_LTDC_AAH(hltdc->Init.AccumulatedActiveH));
237 assert_param(IS_LTDC_AAW(hltdc->Init.AccumulatedActiveW));
238 assert_param(IS_LTDC_TOTALH(hltdc->Init.TotalHeigh));
239 assert_param(IS_LTDC_TOTALW(hltdc->Init.TotalWidth));
240 assert_param(IS_LTDC_HSPOL(hltdc->Init.HSPolarity));
241 assert_param(IS_LTDC_VSPOL(hltdc->Init.VSPolarity));
242 assert_param(IS_LTDC_DEPOL(hltdc->Init.DEPolarity));
243 assert_param(IS_LTDC_PCPOL(hltdc->Init.PCPolarity));
245 #if (USE_HAL_LTDC_REGISTER_CALLBACKS == 1)
249 hltdc->Lock = HAL_UNLOCKED;
256 if (hltdc->MspInitCallback == NULL)
261 hltdc->MspInitCallback(hltdc);
267 hltdc->Lock = HAL_UNLOCKED;
277 hltdc->Instance->GCR &= ~(LTDC_GCR_HSPOL | LTDC_GCR_VSPOL | LTDC_GCR_DEPOL | LTDC_GCR_PCPOL);
278 hltdc->Instance->GCR |= (uint32_t)(hltdc->Init.HSPolarity | hltdc->Init.VSPolarity | \
279 hltdc->Init.DEPolarity | hltdc->Init.PCPolarity);
282 hltdc->Instance->SSCR &= ~(LTDC_SSCR_VSH | LTDC_SSCR_HSW);
283 tmp = (hltdc->Init.HorizontalSync << 16U);
284 hltdc->Instance->SSCR |= (tmp | hltdc->Init.VerticalSync);
287 hltdc->Instance->BPCR &= ~(LTDC_BPCR_AVBP | LTDC_BPCR_AHBP);
288 tmp = (hltdc->Init.AccumulatedHBP << 16U);
289 hltdc->Instance->BPCR |= (tmp | hltdc->Init.AccumulatedVBP);
292 hltdc->Instance->AWCR &= ~(LTDC_AWCR_AAH | LTDC_AWCR_AAW);
293 tmp = (hltdc->Init.AccumulatedActiveW << 16U);
294 hltdc->Instance->AWCR |= (tmp | hltdc->Init.AccumulatedActiveH);
297 hltdc->Instance->TWCR &= ~(LTDC_TWCR_TOTALH | LTDC_TWCR_TOTALW);
298 tmp = (hltdc->Init.TotalWidth << 16U);
299 hltdc->Instance->TWCR |= (tmp | hltdc->Init.TotalHeigh);
302 tmp = ((uint32_t)(hltdc->Init.Backcolor.Green) << 8U);
303 tmp1 = ((uint32_t)(hltdc->Init.Backcolor.Red) << 16U);
304 hltdc->Instance->BCCR &= ~(LTDC_BCCR_BCBLUE | LTDC_BCCR_BCGREEN | LTDC_BCCR_BCRED);
305 hltdc->Instance->BCCR |= (tmp1 | tmp | hltdc->Init.Backcolor.Blue);
308 __HAL_LTDC_ENABLE_IT(hltdc, LTDC_IT_TE | LTDC_IT_FU);
311 __HAL_LTDC_ENABLE(hltdc);
314 hltdc->ErrorCode = HAL_LTDC_ERROR_NONE;
340 assert_param(IS_LTDC_ALL_INSTANCE(hltdc->Instance));
343 __HAL_LTDC_LAYER_DISABLE(hltdc, LTDC_LAYER_1);
345 #if defined(LTDC_Layer2_BASE)
347 __HAL_LTDC_LAYER_DISABLE(hltdc, LTDC_LAYER_2);
351 __HAL_LTDC_VERTICAL_BLANKING_RELOAD_CONFIG(hltdc);
357 while (READ_BIT(hltdc->Instance->CDSR, LTDC_CDSR_VSYNCS) == 0U)
360 if ((
HAL_GetTick() - tickstart) > LTDC_TIMEOUT_VALUE)
367 __HAL_LTDC_DISABLE(hltdc);
369 #if (USE_HAL_LTDC_REGISTER_CALLBACKS == 1)
370 if (hltdc->MspDeInitCallback == NULL)
375 hltdc->MspDeInitCallback(hltdc);
382 hltdc->ErrorCode = HAL_LTDC_ERROR_NONE;
425 #if (USE_HAL_LTDC_REGISTER_CALLBACKS == 1)
443 HAL_StatusTypeDef status = HAL_OK;
445 if (pCallback == NULL)
448 hltdc->ErrorCode |= HAL_LTDC_ERROR_INVALID_CALLBACK;
460 hltdc->LineEventCallback = pCallback;
464 hltdc->ReloadEventCallback = pCallback;
468 hltdc->ErrorCallback = pCallback;
472 hltdc->MspInitCallback = pCallback;
476 hltdc->MspDeInitCallback = pCallback;
481 hltdc->ErrorCode |= HAL_LTDC_ERROR_INVALID_CALLBACK;
492 hltdc->MspInitCallback = pCallback;
496 hltdc->MspDeInitCallback = pCallback;
501 hltdc->ErrorCode |= HAL_LTDC_ERROR_INVALID_CALLBACK;
510 hltdc->ErrorCode |= HAL_LTDC_ERROR_INVALID_CALLBACK;
536 HAL_StatusTypeDef status = HAL_OK;
567 hltdc->ErrorCode |= HAL_LTDC_ERROR_INVALID_CALLBACK;
587 hltdc->ErrorCode |= HAL_LTDC_ERROR_INVALID_CALLBACK;
596 hltdc->ErrorCode |= HAL_LTDC_ERROR_INVALID_CALLBACK;
633 uint32_t isrflags = READ_REG(hltdc->Instance->ISR);
634 uint32_t itsources = READ_REG(hltdc->Instance->IER);
637 if (((isrflags & LTDC_ISR_TERRIF) != 0U) && ((itsources & LTDC_IER_TERRIE) != 0U))
640 __HAL_LTDC_DISABLE_IT(hltdc, LTDC_IT_TE);
643 __HAL_LTDC_CLEAR_FLAG(hltdc, LTDC_FLAG_TE);
646 hltdc->ErrorCode |= HAL_LTDC_ERROR_TE;
655 #if (USE_HAL_LTDC_REGISTER_CALLBACKS == 1)
657 hltdc->ErrorCallback(hltdc);
665 if (((isrflags & LTDC_ISR_FUIF) != 0U) && ((itsources & LTDC_IER_FUIE) != 0U))
668 __HAL_LTDC_DISABLE_IT(hltdc, LTDC_IT_FU);
671 __HAL_LTDC_CLEAR_FLAG(hltdc, LTDC_FLAG_FU);
674 hltdc->ErrorCode |= HAL_LTDC_ERROR_FU;
683 #if (USE_HAL_LTDC_REGISTER_CALLBACKS == 1)
685 hltdc->ErrorCallback(hltdc);
693 if (((isrflags & LTDC_ISR_LIF) != 0U) && ((itsources & LTDC_IER_LIE) != 0U))
696 __HAL_LTDC_DISABLE_IT(hltdc, LTDC_IT_LI);
699 __HAL_LTDC_CLEAR_FLAG(hltdc, LTDC_FLAG_LI);
708 #if (USE_HAL_LTDC_REGISTER_CALLBACKS == 1)
710 hltdc->LineEventCallback(hltdc);
718 if (((isrflags & LTDC_ISR_RRIF) != 0U) && ((itsources & LTDC_IER_RRIE) != 0U))
721 __HAL_LTDC_DISABLE_IT(hltdc, LTDC_IT_RR);
724 __HAL_LTDC_CLEAR_FLAG(hltdc, LTDC_FLAG_RR);
733 #if (USE_HAL_LTDC_REGISTER_CALLBACKS == 1)
735 hltdc->ReloadEventCallback(hltdc);
834 assert_param(IS_LTDC_LAYER(LayerIdx));
835 assert_param(IS_LTDC_HCONFIGST(pLayerCfg->
WindowX0));
836 assert_param(IS_LTDC_HCONFIGSP(pLayerCfg->
WindowX1));
837 assert_param(IS_LTDC_VCONFIGST(pLayerCfg->
WindowY0));
838 assert_param(IS_LTDC_VCONFIGSP(pLayerCfg->
WindowY1));
839 assert_param(IS_LTDC_PIXEL_FORMAT(pLayerCfg->
PixelFormat));
840 assert_param(IS_LTDC_ALPHA(pLayerCfg->
Alpha));
841 assert_param(IS_LTDC_ALPHA(pLayerCfg->
Alpha0));
844 assert_param(IS_LTDC_CFBLL(pLayerCfg->
ImageWidth));
845 assert_param(IS_LTDC_CFBLNBR(pLayerCfg->
ImageHeight));
854 hltdc->LayerCfg[LayerIdx] = *pLayerCfg;
857 LTDC_SetConfig(hltdc, pLayerCfg, LayerIdx);
860 hltdc->Instance->SRCR = LTDC_SRCR_IMR;
884 assert_param(IS_LTDC_LAYER(LayerIdx));
893 LTDC_LAYER(hltdc, LayerIdx)->CKCR &= ~(LTDC_LxCKCR_CKBLUE | LTDC_LxCKCR_CKGREEN | LTDC_LxCKCR_CKRED);
894 LTDC_LAYER(hltdc, LayerIdx)->CKCR = RGBValue;
897 hltdc->Instance->SRCR = LTDC_SRCR_IMR;
923 uint32_t *pcolorlut = pCLUT;
925 assert_param(IS_LTDC_LAYER(LayerIdx));
933 for (counter = 0U; (counter < CLUTSize); counter++)
935 if (hltdc->LayerCfg[LayerIdx].PixelFormat == LTDC_PIXEL_FORMAT_AL44)
937 tmp = (((counter + (16U * counter)) << 24U) | ((uint32_t)(*pcolorlut) & 0xFFU) | \
938 ((uint32_t)(*pcolorlut) & 0xFF00U) | ((uint32_t)(*pcolorlut) & 0xFF0000U));
942 tmp = ((counter << 24U) | ((uint32_t)(*pcolorlut) & 0xFFU) | \
943 ((uint32_t)(*pcolorlut) & 0xFF00U) | ((uint32_t)(*pcolorlut) & 0xFF0000U));
949 LTDC_LAYER(hltdc, LayerIdx)->CLUTWR = tmp;
973 assert_param(IS_LTDC_LAYER(LayerIdx));
982 LTDC_LAYER(hltdc, LayerIdx)->CR |= (uint32_t)LTDC_LxCR_COLKEN;
985 hltdc->Instance->SRCR = LTDC_SRCR_IMR;
1008 assert_param(IS_LTDC_LAYER(LayerIdx));
1017 LTDC_LAYER(hltdc, LayerIdx)->CR &= ~(uint32_t)LTDC_LxCR_COLKEN;
1020 hltdc->Instance->SRCR = LTDC_SRCR_IMR;
1026 __HAL_UNLOCK(hltdc);
1043 assert_param(IS_LTDC_LAYER(LayerIdx));
1052 LTDC_LAYER(hltdc, LayerIdx)->CR |= (uint32_t)LTDC_LxCR_CLUTEN;
1055 hltdc->Instance->SRCR = LTDC_SRCR_IMR;
1061 __HAL_UNLOCK(hltdc);
1078 assert_param(IS_LTDC_LAYER(LayerIdx));
1087 LTDC_LAYER(hltdc, LayerIdx)->CR &= ~(uint32_t)LTDC_LxCR_CLUTEN;
1090 hltdc->Instance->SRCR = LTDC_SRCR_IMR;
1096 __HAL_UNLOCK(hltdc);
1117 LTDC->GCR |= (uint32_t)LTDC_GCR_DEN;
1123 __HAL_UNLOCK(hltdc);
1144 LTDC->GCR &= ~(uint32_t)LTDC_GCR_DEN;
1150 __HAL_UNLOCK(hltdc);
1171 assert_param(IS_LTDC_LAYER(LayerIdx));
1172 assert_param(IS_LTDC_CFBLL(XSize));
1173 assert_param(IS_LTDC_CFBLNBR(YSize));
1182 pLayerCfg = &hltdc->LayerCfg[LayerIdx];
1197 LTDC_SetConfig(hltdc, pLayerCfg, LayerIdx);
1200 hltdc->Instance->SRCR = LTDC_SRCR_IMR;
1206 __HAL_UNLOCK(hltdc);
1227 assert_param(IS_LTDC_LAYER(LayerIdx));
1228 assert_param(IS_LTDC_CFBLL(X0));
1229 assert_param(IS_LTDC_CFBLNBR(Y0));
1238 pLayerCfg = &hltdc->LayerCfg[LayerIdx];
1249 LTDC_SetConfig(hltdc, pLayerCfg, LayerIdx);
1252 hltdc->Instance->SRCR = LTDC_SRCR_IMR;
1258 __HAL_UNLOCK(hltdc);
1278 assert_param(IS_LTDC_PIXEL_FORMAT(Pixelformat));
1279 assert_param(IS_LTDC_LAYER(LayerIdx));
1288 pLayerCfg = &hltdc->LayerCfg[LayerIdx];
1294 LTDC_SetConfig(hltdc, pLayerCfg, LayerIdx);
1297 hltdc->Instance->SRCR = LTDC_SRCR_IMR;
1303 __HAL_UNLOCK(hltdc);
1323 assert_param(IS_LTDC_ALPHA(Alpha));
1324 assert_param(IS_LTDC_LAYER(LayerIdx));
1333 pLayerCfg = &hltdc->LayerCfg[LayerIdx];
1336 pLayerCfg->
Alpha = Alpha;
1339 LTDC_SetConfig(hltdc, pLayerCfg, LayerIdx);
1342 hltdc->Instance->SRCR = LTDC_SRCR_IMR;
1348 __HAL_UNLOCK(hltdc);
1367 assert_param(IS_LTDC_LAYER(LayerIdx));
1376 pLayerCfg = &hltdc->LayerCfg[LayerIdx];
1382 LTDC_SetConfig(hltdc, pLayerCfg, LayerIdx);
1385 hltdc->Instance->SRCR = LTDC_SRCR_IMR;
1391 __HAL_UNLOCK(hltdc);
1414 uint32_t pitchUpdate;
1415 uint32_t pixelFormat;
1418 assert_param(IS_LTDC_LAYER(LayerIdx));
1427 pixelFormat = hltdc->LayerCfg[LayerIdx].PixelFormat;
1429 if (pixelFormat == LTDC_PIXEL_FORMAT_ARGB8888)
1433 else if (pixelFormat == LTDC_PIXEL_FORMAT_RGB888)
1437 else if ((pixelFormat == LTDC_PIXEL_FORMAT_ARGB4444) || \
1438 (pixelFormat == LTDC_PIXEL_FORMAT_RGB565) || \
1439 (pixelFormat == LTDC_PIXEL_FORMAT_ARGB1555) || \
1440 (pixelFormat == LTDC_PIXEL_FORMAT_AL88))
1449 pitchUpdate = ((LinePitchInPixels * tmp) << 16U);
1452 LTDC_LAYER(hltdc, LayerIdx)->CFBLR &= ~LTDC_LxCFBLR_CFBP;
1455 LTDC->SRCR |= LTDC_SRCR_IMR;
1458 LTDC_LAYER(hltdc, LayerIdx)->CFBLR |= pitchUpdate;
1461 LTDC->SRCR |= LTDC_SRCR_IMR;
1467 __HAL_UNLOCK(hltdc);
1483 assert_param(IS_LTDC_LIPOS(Line));
1492 __HAL_LTDC_DISABLE_IT(hltdc, LTDC_IT_LI);
1495 LTDC->LIPCR = (uint32_t)Line;
1498 __HAL_LTDC_ENABLE_IT(hltdc, LTDC_IT_LI);
1504 __HAL_UNLOCK(hltdc);
1522 assert_param(IS_LTDC_RELOAD(ReloadType));
1531 __HAL_LTDC_ENABLE_IT(hltdc, LTDC_IT_RR);
1534 hltdc->Instance->SRCR = ReloadType;
1540 __HAL_UNLOCK(hltdc);
1562 assert_param(IS_LTDC_LAYER(LayerIdx));
1563 assert_param(IS_LTDC_HCONFIGST(pLayerCfg->
WindowX0));
1564 assert_param(IS_LTDC_HCONFIGSP(pLayerCfg->
WindowX1));
1565 assert_param(IS_LTDC_VCONFIGST(pLayerCfg->
WindowY0));
1566 assert_param(IS_LTDC_VCONFIGSP(pLayerCfg->
WindowY1));
1567 assert_param(IS_LTDC_PIXEL_FORMAT(pLayerCfg->
PixelFormat));
1568 assert_param(IS_LTDC_ALPHA(pLayerCfg->
Alpha));
1569 assert_param(IS_LTDC_ALPHA(pLayerCfg->
Alpha0));
1572 assert_param(IS_LTDC_CFBLL(pLayerCfg->
ImageWidth));
1573 assert_param(IS_LTDC_CFBLNBR(pLayerCfg->
ImageHeight));
1582 hltdc->LayerCfg[LayerIdx] = *pLayerCfg;
1585 LTDC_SetConfig(hltdc, pLayerCfg, LayerIdx);
1591 __HAL_UNLOCK(hltdc);
1614 assert_param(IS_LTDC_LAYER(LayerIdx));
1615 assert_param(IS_LTDC_CFBLL(XSize));
1616 assert_param(IS_LTDC_CFBLNBR(YSize));
1625 pLayerCfg = &hltdc->LayerCfg[LayerIdx];
1640 LTDC_SetConfig(hltdc, pLayerCfg, LayerIdx);
1646 __HAL_UNLOCK(hltdc);
1669 assert_param(IS_LTDC_LAYER(LayerIdx));
1670 assert_param(IS_LTDC_CFBLL(X0));
1671 assert_param(IS_LTDC_CFBLNBR(Y0));
1680 pLayerCfg = &hltdc->LayerCfg[LayerIdx];
1691 LTDC_SetConfig(hltdc, pLayerCfg, LayerIdx);
1697 __HAL_UNLOCK(hltdc);
1718 assert_param(IS_LTDC_PIXEL_FORMAT(Pixelformat));
1719 assert_param(IS_LTDC_LAYER(LayerIdx));
1728 pLayerCfg = &hltdc->LayerCfg[LayerIdx];
1734 LTDC_SetConfig(hltdc, pLayerCfg, LayerIdx);
1740 __HAL_UNLOCK(hltdc);
1761 assert_param(IS_LTDC_ALPHA(Alpha));
1762 assert_param(IS_LTDC_LAYER(LayerIdx));
1771 pLayerCfg = &hltdc->LayerCfg[LayerIdx];
1774 pLayerCfg->
Alpha = Alpha;
1777 LTDC_SetConfig(hltdc, pLayerCfg, LayerIdx);
1783 __HAL_UNLOCK(hltdc);
1804 assert_param(IS_LTDC_LAYER(LayerIdx));
1813 pLayerCfg = &hltdc->LayerCfg[LayerIdx];
1819 LTDC_SetConfig(hltdc, pLayerCfg, LayerIdx);
1825 __HAL_UNLOCK(hltdc);
1849 uint32_t pitchUpdate;
1850 uint32_t pixelFormat;
1853 assert_param(IS_LTDC_LAYER(LayerIdx));
1862 pixelFormat = hltdc->LayerCfg[LayerIdx].PixelFormat;
1864 if (pixelFormat == LTDC_PIXEL_FORMAT_ARGB8888)
1868 else if (pixelFormat == LTDC_PIXEL_FORMAT_RGB888)
1872 else if ((pixelFormat == LTDC_PIXEL_FORMAT_ARGB4444) || \
1873 (pixelFormat == LTDC_PIXEL_FORMAT_RGB565) || \
1874 (pixelFormat == LTDC_PIXEL_FORMAT_ARGB1555) || \
1875 (pixelFormat == LTDC_PIXEL_FORMAT_AL88))
1884 pitchUpdate = ((LinePitchInPixels * tmp) << 16U);
1887 LTDC_LAYER(hltdc, LayerIdx)->CFBLR &= ~LTDC_LxCFBLR_CFBP;
1890 LTDC_LAYER(hltdc, LayerIdx)->CFBLR |= pitchUpdate;
1896 __HAL_UNLOCK(hltdc);
1916 assert_param(IS_LTDC_LAYER(LayerIdx));
1925 LTDC_LAYER(hltdc, LayerIdx)->CKCR &= ~(LTDC_LxCKCR_CKBLUE | LTDC_LxCKCR_CKGREEN | LTDC_LxCKCR_CKRED);
1926 LTDC_LAYER(hltdc, LayerIdx)->CKCR = RGBValue;
1932 __HAL_UNLOCK(hltdc);
1950 assert_param(IS_LTDC_LAYER(LayerIdx));
1959 LTDC_LAYER(hltdc, LayerIdx)->CR |= (uint32_t)LTDC_LxCR_COLKEN;
1965 __HAL_UNLOCK(hltdc);
1983 assert_param(IS_LTDC_LAYER(LayerIdx));
1992 LTDC_LAYER(hltdc, LayerIdx)->CR &= ~(uint32_t)LTDC_LxCR_COLKEN;
1998 __HAL_UNLOCK(hltdc);
2016 assert_param(IS_LTDC_LAYER(LayerIdx));
2025 LTDC_LAYER(hltdc, LayerIdx)->CR |= (uint32_t)LTDC_LxCR_CLUTEN;
2031 __HAL_UNLOCK(hltdc);
2049 assert_param(IS_LTDC_LAYER(LayerIdx));
2058 LTDC_LAYER(hltdc, LayerIdx)->CR &= ~(uint32_t)LTDC_LxCR_CLUTEN;
2064 __HAL_UNLOCK(hltdc);
2097 return hltdc->State;
2108 return hltdc->ErrorCode;
2139 tmp = ((pLayerCfg->
WindowX1 + ((hltdc->Instance->BPCR & LTDC_BPCR_AHBP) >> 16U)) << 16U);
2140 LTDC_LAYER(hltdc, LayerIdx)->WHPCR &= ~(LTDC_LxWHPCR_WHSTPOS | LTDC_LxWHPCR_WHSPPOS);
2141 LTDC_LAYER(hltdc, LayerIdx)->WHPCR = ((pLayerCfg->
WindowX0 + \
2142 ((hltdc->Instance->BPCR & LTDC_BPCR_AHBP) >> 16U) + 1U) | tmp);
2145 tmp = ((pLayerCfg->
WindowY1 + (hltdc->Instance->BPCR & LTDC_BPCR_AVBP)) << 16U);
2146 LTDC_LAYER(hltdc, LayerIdx)->WVPCR &= ~(LTDC_LxWVPCR_WVSTPOS | LTDC_LxWVPCR_WVSPPOS);
2147 LTDC_LAYER(hltdc, LayerIdx)->WVPCR = ((pLayerCfg->
WindowY0 + (hltdc->Instance->BPCR & LTDC_BPCR_AVBP) + 1U) | tmp);
2150 LTDC_LAYER(hltdc, LayerIdx)->PFCR &= ~(LTDC_LxPFCR_PF);
2151 LTDC_LAYER(hltdc, LayerIdx)->PFCR = (pLayerCfg->
PixelFormat);
2156 tmp2 = (pLayerCfg->
Alpha0 << 24U);
2157 LTDC_LAYER(hltdc, LayerIdx)->DCCR &= ~(LTDC_LxDCCR_DCBLUE | LTDC_LxDCCR_DCGREEN | LTDC_LxDCCR_DCRED |
2158 LTDC_LxDCCR_DCALPHA);
2159 LTDC_LAYER(hltdc, LayerIdx)->DCCR = (pLayerCfg->
Backcolor.
Blue | tmp | tmp1 | tmp2);
2162 LTDC_LAYER(hltdc, LayerIdx)->CACR &= ~(LTDC_LxCACR_CONSTA);
2163 LTDC_LAYER(hltdc, LayerIdx)->CACR = (pLayerCfg->
Alpha);
2166 LTDC_LAYER(hltdc, LayerIdx)->BFCR &= ~(LTDC_LxBFCR_BF2 | LTDC_LxBFCR_BF1);
2170 LTDC_LAYER(hltdc, LayerIdx)->CFBAR &= ~(LTDC_LxCFBAR_CFBADD);
2171 LTDC_LAYER(hltdc, LayerIdx)->CFBAR = (pLayerCfg->
FBStartAdress);
2173 if (pLayerCfg->
PixelFormat == LTDC_PIXEL_FORMAT_ARGB8888)
2177 else if (pLayerCfg->
PixelFormat == LTDC_PIXEL_FORMAT_RGB888)
2181 else if ((pLayerCfg->
PixelFormat == LTDC_PIXEL_FORMAT_ARGB4444) || \
2182 (pLayerCfg->
PixelFormat == LTDC_PIXEL_FORMAT_RGB565) || \
2183 (pLayerCfg->
PixelFormat == LTDC_PIXEL_FORMAT_ARGB1555) || \
2184 (pLayerCfg->
PixelFormat == LTDC_PIXEL_FORMAT_AL88))
2194 LTDC_LAYER(hltdc, LayerIdx)->CFBLR &= ~(LTDC_LxCFBLR_CFBLL | LTDC_LxCFBLR_CFBP);
2195 LTDC_LAYER(hltdc, LayerIdx)->CFBLR = (((pLayerCfg->
ImageWidth * tmp) << 16U) | \
2198 LTDC_LAYER(hltdc, LayerIdx)->CFBLNR &= ~(LTDC_LxCFBLNR_CFBLNBR);
2199 LTDC_LAYER(hltdc, LayerIdx)->CFBLNR = (pLayerCfg->
ImageHeight);
2202 LTDC_LAYER(hltdc, LayerIdx)->CR |= (uint32_t)LTDC_LxCR_LEN;
uint32_t HAL_GetTick(void)
Provides a tick value in millisecond.
HAL_StatusTypeDef HAL_LTDC_UnRegisterCallback(LTDC_HandleTypeDef *hltdc, HAL_LTDC_CallbackIDTypeDef CallbackID)
Unregister an LTDC Callback LTDC callback is redirected to the weak predefined callback.
HAL_StatusTypeDef HAL_LTDC_Init(LTDC_HandleTypeDef *hltdc)
Initialize the LTDC according to the specified parameters in the LTDC_InitTypeDef.
void HAL_LTDC_MspDeInit(LTDC_HandleTypeDef *hltdc)
De-initialize the LTDC MSP.
HAL_StatusTypeDef HAL_LTDC_RegisterCallback(LTDC_HandleTypeDef *hltdc, HAL_LTDC_CallbackIDTypeDef CallbackID, pLTDC_CallbackTypeDef pCallback)
Register a User LTDC Callback To be used instead of the weak predefined callback.
void HAL_LTDC_MspInit(LTDC_HandleTypeDef *hltdc)
Initialize the LTDC MSP.
HAL_StatusTypeDef HAL_LTDC_DeInit(LTDC_HandleTypeDef *hltdc)
De-initialize the LTDC peripheral.
__weak void HAL_LTDC_ReloadEventCallback(LTDC_HandleTypeDef *hltdc)
Reload Event callback.
void HAL_LTDC_IRQHandler(LTDC_HandleTypeDef *hltdc)
Handle LTDC interrupt request.
__weak void HAL_LTDC_LineEventCallback(LTDC_HandleTypeDef *hltdc)
Line Event callback.
__weak void HAL_LTDC_ErrorCallback(LTDC_HandleTypeDef *hltdc)
Error LTDC callback.
HAL_StatusTypeDef HAL_LTDC_ConfigColorKeying(LTDC_HandleTypeDef *hltdc, uint32_t RGBValue, uint32_t LayerIdx)
Configure the color keying.
HAL_StatusTypeDef HAL_LTDC_DisableDither(LTDC_HandleTypeDef *hltdc)
Disable Dither.
HAL_StatusTypeDef HAL_LTDC_SetPixelFormat(LTDC_HandleTypeDef *hltdc, uint32_t Pixelformat, uint32_t LayerIdx)
Reconfigure the pixel format.
HAL_StatusTypeDef HAL_LTDC_EnableColorKeying_NoReload(LTDC_HandleTypeDef *hltdc, uint32_t LayerIdx)
Enable the color keying without reloading. Variant of the function HAL_LTDC_EnableColorKeying without...
HAL_StatusTypeDef HAL_LTDC_SetAddress_NoReload(LTDC_HandleTypeDef *hltdc, uint32_t Address, uint32_t LayerIdx)
Reconfigure the frame buffer Address without reloading. Variant of the function HAL_LTDC_SetAddress w...
HAL_StatusTypeDef HAL_LTDC_EnableDither(LTDC_HandleTypeDef *hltdc)
Enable Dither.
HAL_StatusTypeDef HAL_LTDC_SetAddress(LTDC_HandleTypeDef *hltdc, uint32_t Address, uint32_t LayerIdx)
Reconfigure the frame buffer Address.
HAL_StatusTypeDef HAL_LTDC_SetWindowPosition(LTDC_HandleTypeDef *hltdc, uint32_t X0, uint32_t Y0, uint32_t LayerIdx)
Set the LTDC window position.
HAL_StatusTypeDef HAL_LTDC_Reload(LTDC_HandleTypeDef *hltdc, uint32_t ReloadType)
Reload LTDC Layers configuration.
HAL_StatusTypeDef HAL_LTDC_ConfigLayer_NoReload(LTDC_HandleTypeDef *hltdc, LTDC_LayerCfgTypeDef *pLayerCfg, uint32_t LayerIdx)
Configure the LTDC Layer according to the specified without reloading parameters in the LTDC_InitType...
HAL_StatusTypeDef HAL_LTDC_SetAlpha_NoReload(LTDC_HandleTypeDef *hltdc, uint32_t Alpha, uint32_t LayerIdx)
Reconfigure the layer alpha value without reloading. Variant of the function HAL_LTDC_SetAlpha withou...
HAL_StatusTypeDef HAL_LTDC_EnableCLUT(LTDC_HandleTypeDef *hltdc, uint32_t LayerIdx)
Enable the color lookup table.
HAL_StatusTypeDef HAL_LTDC_EnableCLUT_NoReload(LTDC_HandleTypeDef *hltdc, uint32_t LayerIdx)
Enable the color lookup table without reloading. Variant of the function HAL_LTDC_EnableCLUT without ...
HAL_StatusTypeDef HAL_LTDC_DisableColorKeying(LTDC_HandleTypeDef *hltdc, uint32_t LayerIdx)
Disable the color keying.
HAL_StatusTypeDef HAL_LTDC_ConfigLayer(LTDC_HandleTypeDef *hltdc, LTDC_LayerCfgTypeDef *pLayerCfg, uint32_t LayerIdx)
Configure the LTDC Layer according to the specified parameters in the LTDC_InitTypeDef and create the...
HAL_StatusTypeDef HAL_LTDC_SetPitch(LTDC_HandleTypeDef *hltdc, uint32_t LinePitchInPixels, uint32_t LayerIdx)
Function used to reconfigure the pitch for specific cases where the attached LayerIdx buffer have a w...
HAL_StatusTypeDef HAL_LTDC_SetAlpha(LTDC_HandleTypeDef *hltdc, uint32_t Alpha, uint32_t LayerIdx)
Reconfigure the layer alpha value.
HAL_StatusTypeDef HAL_LTDC_EnableColorKeying(LTDC_HandleTypeDef *hltdc, uint32_t LayerIdx)
Enable the color keying.
HAL_StatusTypeDef HAL_LTDC_SetWindowPosition_NoReload(LTDC_HandleTypeDef *hltdc, uint32_t X0, uint32_t Y0, uint32_t LayerIdx)
Set the LTDC window position without reloading. Variant of the function HAL_LTDC_SetWindowPosition wi...
HAL_StatusTypeDef HAL_LTDC_ProgramLineEvent(LTDC_HandleTypeDef *hltdc, uint32_t Line)
Define the position of the line interrupt.
HAL_StatusTypeDef HAL_LTDC_SetWindowSize_NoReload(LTDC_HandleTypeDef *hltdc, uint32_t XSize, uint32_t YSize, uint32_t LayerIdx)
Set the LTDC window size without reloading. Variant of the function HAL_LTDC_SetWindowSize without im...
HAL_StatusTypeDef HAL_LTDC_DisableColorKeying_NoReload(LTDC_HandleTypeDef *hltdc, uint32_t LayerIdx)
Disable the color keying without reloading. Variant of the function HAL_LTDC_DisableColorKeying witho...
HAL_StatusTypeDef HAL_LTDC_SetPixelFormat_NoReload(LTDC_HandleTypeDef *hltdc, uint32_t Pixelformat, uint32_t LayerIdx)
Reconfigure the pixel format without reloading. Variant of the function HAL_LTDC_SetPixelFormat witho...
HAL_StatusTypeDef HAL_LTDC_ConfigColorKeying_NoReload(LTDC_HandleTypeDef *hltdc, uint32_t RGBValue, uint32_t LayerIdx)
Configure the color keying without reloading. Variant of the function HAL_LTDC_ConfigColorKeying with...
HAL_StatusTypeDef HAL_LTDC_ConfigCLUT(LTDC_HandleTypeDef *hltdc, uint32_t *pCLUT, uint32_t CLUTSize, uint32_t LayerIdx)
Load the color lookup table.
HAL_StatusTypeDef HAL_LTDC_SetPitch_NoReload(LTDC_HandleTypeDef *hltdc, uint32_t LinePitchInPixels, uint32_t LayerIdx)
Function used to reconfigure the pitch for specific cases where the attached LayerIdx buffer have a w...
HAL_StatusTypeDef HAL_LTDC_DisableCLUT(LTDC_HandleTypeDef *hltdc, uint32_t LayerIdx)
Disable the color lookup table.
HAL_StatusTypeDef HAL_LTDC_DisableCLUT_NoReload(LTDC_HandleTypeDef *hltdc, uint32_t LayerIdx)
Disable the color lookup table without reloading. Variant of the function HAL_LTDC_DisableCLUT withou...
HAL_StatusTypeDef HAL_LTDC_SetWindowSize(LTDC_HandleTypeDef *hltdc, uint32_t XSize, uint32_t YSize, uint32_t LayerIdx)
Set the LTDC window size.
HAL_LTDC_StateTypeDef HAL_LTDC_GetState(LTDC_HandleTypeDef *hltdc)
Return the LTDC handle state.
uint32_t HAL_LTDC_GetError(LTDC_HandleTypeDef *hltdc)
Return the LTDC handle error code.
LTDC_ColorTypeDef Backcolor
HAL_LTDC_StateTypeDef
HAL LTDC State structures definition.
void(* pLTDC_CallbackTypeDef)(LTDC_HandleTypeDef *hltdc)
HAL LTDC Callback pointer definition.
HAL_LTDC_CallbackIDTypeDef
HAL LTDC Callback ID enumeration definition.
struct __LTDC_HandleTypeDef else typedef struct endif LTDC_HandleTypeDef
LTDC handle Structure definition.
@ HAL_LTDC_MSPDEINIT_CB_ID
@ HAL_LTDC_RELOAD_EVENT_CB_ID
@ HAL_LTDC_LINE_EVENT_CB_ID
LTDC Layer structure definition.
This file contains all the functions prototypes for the HAL module driver.