STM32L4xx_HAL_Driver  1.14.0
Initialization and Configuration functions

Initialization and Configuration functions. More...

Functions

HAL_StatusTypeDef HAL_LTDC_Init (LTDC_HandleTypeDef *hltdc)
 Initialize the LTDC according to the specified parameters in the LTDC_InitTypeDef. More...
 
HAL_StatusTypeDef HAL_LTDC_DeInit (LTDC_HandleTypeDef *hltdc)
 De-initialize the LTDC peripheral. More...
 
void HAL_LTDC_MspInit (LTDC_HandleTypeDef *hltdc)
 Initialize the LTDC MSP. More...
 
void HAL_LTDC_MspDeInit (LTDC_HandleTypeDef *hltdc)
 De-initialize the LTDC MSP. More...
 
void HAL_LTDC_ErrorCallback (LTDC_HandleTypeDef *hltdc)
 Error LTDC callback. More...
 
void HAL_LTDC_LineEventCallback (LTDC_HandleTypeDef *hltdc)
 Line Event callback. More...
 
void HAL_LTDC_ReloadEventCallback (LTDC_HandleTypeDef *hltdc)
 Reload Event callback. More...
 
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. More...
 
HAL_StatusTypeDef HAL_LTDC_UnRegisterCallback (LTDC_HandleTypeDef *hltdc, HAL_LTDC_CallbackIDTypeDef CallbackID)
 Unregister an LTDC Callback LTDC callabck is redirected to the weak predefined callback. More...
 

Detailed Description

Initialization and Configuration functions.

 ===============================================================================
                ##### Initialization and Configuration functions #####
 ===============================================================================
    [..]  This section provides functions allowing to:
      (+) Initialize and configure the LTDC
      (+) De-initialize the LTDC

Function Documentation

◆ HAL_LTDC_DeInit()

HAL_StatusTypeDef HAL_LTDC_DeInit ( LTDC_HandleTypeDef hltdc)

De-initialize the LTDC peripheral.

Parameters
hltdcpointer to a LTDC_HandleTypeDef structure that contains the configuration information for the LTDC.
Return values
None

Definition at line 321 of file stm32l4xx_hal_ltdc.c.

322 {
323 #if (USE_HAL_LTDC_REGISTER_CALLBACKS == 1)
324  if (hltdc->MspDeInitCallback == NULL)
325  {
326  hltdc->MspDeInitCallback = HAL_LTDC_MspDeInit;
327  }
328  /* DeInit the low level hardware */
329  hltdc->MspDeInitCallback(hltdc);
330 #else
331  /* DeInit the low level hardware */
332  HAL_LTDC_MspDeInit(hltdc);
333 #endif /* USE_HAL_LTDC_REGISTER_CALLBACKS */
334 
335  /* Initialize the error code */
336  hltdc->ErrorCode = HAL_LTDC_ERROR_NONE;
337 
338  /* Initialize the LTDC state*/
339  hltdc->State = HAL_LTDC_STATE_RESET;
340 
341  /* Release Lock */
342  __HAL_UNLOCK(hltdc);
343 
344  return HAL_OK;
345 }
void HAL_LTDC_MspDeInit(LTDC_HandleTypeDef *hltdc)
De-initialize the LTDC MSP.
__HAL_UNLOCK(hrtc)
return HAL_OK

◆ HAL_LTDC_ErrorCallback()

void HAL_LTDC_ErrorCallback ( LTDC_HandleTypeDef hltdc)

Error LTDC callback.

Parameters
hltdcpointer to a LTDC_HandleTypeDef structure that contains the configuration information for the LTDC.
Return values
None

Definition at line 702 of file stm32l4xx_hal_ltdc.c.

703 {
704  /* Prevent unused argument(s) compilation warning */
705  UNUSED(hltdc);
706 
707  /* NOTE : This function should not be modified, when the callback is needed,
708  the HAL_LTDC_ErrorCallback could be implemented in the user file
709  */
710 }

◆ HAL_LTDC_Init()

HAL_StatusTypeDef HAL_LTDC_Init ( LTDC_HandleTypeDef hltdc)

Initialize the LTDC according to the specified parameters in the LTDC_InitTypeDef.

Parameters
hltdcpointer to a LTDC_HandleTypeDef structure that contains the configuration information for the LTDC.
Return values
HALstatus

Definition at line 212 of file stm32l4xx_hal_ltdc.c.

213 {
214  uint32_t tmp, tmp1;
215 
216  /* Check the LTDC peripheral state */
217  if (hltdc == NULL)
218  {
219  return HAL_ERROR;
220  }
221 
222  /* Check function parameters */
223  assert_param(IS_LTDC_ALL_INSTANCE(hltdc->Instance));
224  assert_param(IS_LTDC_HSYNC(hltdc->Init.HorizontalSync));
225  assert_param(IS_LTDC_VSYNC(hltdc->Init.VerticalSync));
226  assert_param(IS_LTDC_AHBP(hltdc->Init.AccumulatedHBP));
227  assert_param(IS_LTDC_AVBP(hltdc->Init.AccumulatedVBP));
228  assert_param(IS_LTDC_AAH(hltdc->Init.AccumulatedActiveH));
229  assert_param(IS_LTDC_AAW(hltdc->Init.AccumulatedActiveW));
230  assert_param(IS_LTDC_TOTALH(hltdc->Init.TotalHeigh));
231  assert_param(IS_LTDC_TOTALW(hltdc->Init.TotalWidth));
232  assert_param(IS_LTDC_HSPOL(hltdc->Init.HSPolarity));
233  assert_param(IS_LTDC_VSPOL(hltdc->Init.VSPolarity));
234  assert_param(IS_LTDC_DEPOL(hltdc->Init.DEPolarity));
235  assert_param(IS_LTDC_PCPOL(hltdc->Init.PCPolarity));
236 
237 #if (USE_HAL_LTDC_REGISTER_CALLBACKS == 1)
238  if (hltdc->State == HAL_LTDC_STATE_RESET)
239  {
240  /* Allocate lock resource and initialize it */
241  hltdc->Lock = HAL_UNLOCKED;
242 
243  /* Reset the LTDC callback to the legacy weak callbacks */
244  hltdc->LineEventCallback = HAL_LTDC_LineEventCallback; /* Legacy weak LineEventCallback */
245  hltdc->ReloadEventCallback = HAL_LTDC_ReloadEventCallback; /* Legacy weak ReloadEventCallback */
246  hltdc->ErrorCallback = HAL_LTDC_ErrorCallback; /* Legacy weak ErrorCallback */
247 
248  if (hltdc->MspInitCallback == NULL)
249  {
250  hltdc->MspInitCallback = HAL_LTDC_MspInit;
251  }
252  /* Init the low level hardware */
253  hltdc->MspInitCallback(hltdc);
254  }
255 #else
256  if (hltdc->State == HAL_LTDC_STATE_RESET)
257  {
258  /* Allocate lock resource and initialize it */
259  hltdc->Lock = HAL_UNLOCKED;
260  /* Init the low level hardware */
261  HAL_LTDC_MspInit(hltdc);
262  }
263 #endif /* USE_HAL_LTDC_REGISTER_CALLBACKS */
264 
265  /* Change LTDC peripheral state */
266  hltdc->State = HAL_LTDC_STATE_BUSY;
267 
268  /* Configure the HS, VS, DE and PC polarity */
269  hltdc->Instance->GCR &= ~(LTDC_GCR_HSPOL | LTDC_GCR_VSPOL | LTDC_GCR_DEPOL | LTDC_GCR_PCPOL);
270  hltdc->Instance->GCR |= (uint32_t)(hltdc->Init.HSPolarity | hltdc->Init.VSPolarity | \
271  hltdc->Init.DEPolarity | hltdc->Init.PCPolarity);
272 
273  /* Set Synchronization size */
274  hltdc->Instance->SSCR &= ~(LTDC_SSCR_VSH | LTDC_SSCR_HSW);
275  tmp = (hltdc->Init.HorizontalSync << 16U);
276  hltdc->Instance->SSCR |= (tmp | hltdc->Init.VerticalSync);
277 
278  /* Set Accumulated Back porch */
279  hltdc->Instance->BPCR &= ~(LTDC_BPCR_AVBP | LTDC_BPCR_AHBP);
280  tmp = (hltdc->Init.AccumulatedHBP << 16U);
281  hltdc->Instance->BPCR |= (tmp | hltdc->Init.AccumulatedVBP);
282 
283  /* Set Accumulated Active Width */
284  hltdc->Instance->AWCR &= ~(LTDC_AWCR_AAH | LTDC_AWCR_AAW);
285  tmp = (hltdc->Init.AccumulatedActiveW << 16U);
286  hltdc->Instance->AWCR |= (tmp | hltdc->Init.AccumulatedActiveH);
287 
288  /* Set Total Width */
289  hltdc->Instance->TWCR &= ~(LTDC_TWCR_TOTALH | LTDC_TWCR_TOTALW);
290  tmp = (hltdc->Init.TotalWidth << 16U);
291  hltdc->Instance->TWCR |= (tmp | hltdc->Init.TotalHeigh);
292 
293  /* Set the background color value */
294  tmp = ((uint32_t)(hltdc->Init.Backcolor.Green) << 8U);
295  tmp1 = ((uint32_t)(hltdc->Init.Backcolor.Red) << 16U);
296  hltdc->Instance->BCCR &= ~(LTDC_BCCR_BCBLUE | LTDC_BCCR_BCGREEN | LTDC_BCCR_BCRED);
297  hltdc->Instance->BCCR |= (tmp1 | tmp | hltdc->Init.Backcolor.Blue);
298 
299  /* Enable the Transfer Error and FIFO underrun interrupts */
300  __HAL_LTDC_ENABLE_IT(hltdc, LTDC_IT_TE | LTDC_IT_FU);
301 
302  /* Enable LTDC by setting LTDCEN bit */
303  __HAL_LTDC_ENABLE(hltdc);
304 
305  /* Initialize the error code */
306  hltdc->ErrorCode = HAL_LTDC_ERROR_NONE;
307 
308  /* Initialize the LTDC state*/
309  hltdc->State = HAL_LTDC_STATE_READY;
310 
311  return HAL_OK;
312 }
void HAL_LTDC_MspInit(LTDC_HandleTypeDef *hltdc)
Initialize the LTDC MSP.
__weak void HAL_LTDC_LineEventCallback(LTDC_HandleTypeDef *hltdc)
Line Event callback.
return HAL_OK
__weak void HAL_LTDC_ErrorCallback(LTDC_HandleTypeDef *hltdc)
Error LTDC callback.
__weak void HAL_LTDC_ReloadEventCallback(LTDC_HandleTypeDef *hltdc)
Reload Event callback.
assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock))

◆ HAL_LTDC_LineEventCallback()

void HAL_LTDC_LineEventCallback ( LTDC_HandleTypeDef hltdc)

Line Event callback.

Parameters
hltdcpointer to a LTDC_HandleTypeDef structure that contains the configuration information for the LTDC.
Return values
None

Definition at line 718 of file stm32l4xx_hal_ltdc.c.

719 {
720  /* Prevent unused argument(s) compilation warning */
721  UNUSED(hltdc);
722 
723  /* NOTE : This function should not be modified, when the callback is needed,
724  the HAL_LTDC_LineEventCallback could be implemented in the user file
725  */
726 }

◆ HAL_LTDC_MspDeInit()

__weak void HAL_LTDC_MspDeInit ( LTDC_HandleTypeDef hltdc)

De-initialize the LTDC MSP.

Parameters
hltdcpointer to a LTDC_HandleTypeDef structure that contains the configuration information for the LTDC.
Return values
None

Definition at line 369 of file stm32l4xx_hal_ltdc.c.

370 {
371  /* Prevent unused argument(s) compilation warning */
372  UNUSED(hltdc);
373 
374  /* NOTE : This function should not be modified, when the callback is needed,
375  the HAL_LTDC_MspDeInit could be implemented in the user file
376  */
377 }

◆ HAL_LTDC_MspInit()

__weak void HAL_LTDC_MspInit ( LTDC_HandleTypeDef hltdc)

Initialize the LTDC MSP.

Parameters
hltdcpointer to a LTDC_HandleTypeDef structure that contains the configuration information for the LTDC.
Return values
None

Definition at line 353 of file stm32l4xx_hal_ltdc.c.

354 {
355  /* Prevent unused argument(s) compilation warning */
356  UNUSED(hltdc);
357 
358  /* NOTE : This function should not be modified, when the callback is needed,
359  the HAL_LTDC_MspInit could be implemented in the user file
360  */
361 }

◆ HAL_LTDC_RegisterCallback()

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.

Parameters
hltdcltdc handle
CallbackIDID of the callback to be registered This parameter can be one of the following values:
pCallbackpointer to the Callback function
Return values
status

Definition at line 394 of file stm32l4xx_hal_ltdc.c.

395 {
396  HAL_StatusTypeDef status = HAL_OK;
397 
398  if (pCallback == NULL)
399  {
400  /* Update the error code */
401  hltdc->ErrorCode |= HAL_LTDC_ERROR_INVALID_CALLBACK;
402 
403  return HAL_ERROR;
404  }
405  /* Process locked */
406  __HAL_LOCK(hltdc);
407 
408  if (hltdc->State == HAL_LTDC_STATE_READY)
409  {
410  switch (CallbackID)
411  {
413  hltdc->LineEventCallback = pCallback;
414  break;
415 
417  hltdc->ReloadEventCallback = pCallback;
418  break;
419 
420  case HAL_LTDC_ERROR_CB_ID :
421  hltdc->ErrorCallback = pCallback;
422  break;
423 
425  hltdc->MspInitCallback = pCallback;
426  break;
427 
429  hltdc->MspDeInitCallback = pCallback;
430  break;
431 
432  default :
433  /* Update the error code */
434  hltdc->ErrorCode |= HAL_LTDC_ERROR_INVALID_CALLBACK;
435  /* Return error status */
436  status = HAL_ERROR;
437  break;
438  }
439  }
440  else if (hltdc->State == HAL_LTDC_STATE_RESET)
441  {
442  switch (CallbackID)
443  {
445  hltdc->MspInitCallback = pCallback;
446  break;
447 
449  hltdc->MspDeInitCallback = pCallback;
450  break;
451 
452  default :
453  /* Update the error code */
454  hltdc->ErrorCode |= HAL_LTDC_ERROR_INVALID_CALLBACK;
455  /* Return error status */
456  status = HAL_ERROR;
457  break;
458  }
459  }
460  else
461  {
462  /* Update the error code */
463  hltdc->ErrorCode |= HAL_LTDC_ERROR_INVALID_CALLBACK;
464  /* Return error status */
465  status = HAL_ERROR;
466  }
467 
468  /* Release Lock */
469  __HAL_UNLOCK(hltdc);
470 
471  return status;
472 }
__HAL_UNLOCK(hrtc)
__HAL_LOCK(hrtc)
return HAL_OK

◆ HAL_LTDC_ReloadEventCallback()

void HAL_LTDC_ReloadEventCallback ( LTDC_HandleTypeDef hltdc)

Reload Event callback.

Parameters
hltdcpointer to a LTDC_HandleTypeDef structure that contains the configuration information for the LTDC.
Return values
None

Definition at line 734 of file stm32l4xx_hal_ltdc.c.

735 {
736  /* Prevent unused argument(s) compilation warning */
737  UNUSED(hltdc);
738 
739  /* NOTE : This function should not be modified, when the callback is needed,
740  the HAL_LTDC_ReloadEvenCallback could be implemented in the user file
741  */
742 }

◆ HAL_LTDC_UnRegisterCallback()

HAL_StatusTypeDef HAL_LTDC_UnRegisterCallback ( LTDC_HandleTypeDef hltdc,
HAL_LTDC_CallbackIDTypeDef  CallbackID 
)

Unregister an LTDC Callback LTDC callabck is redirected to the weak predefined callback.

Parameters
hltdcltdc handle
CallbackIDID of the callback to be unregistered This parameter can be one of the following values:
Return values
status

Definition at line 487 of file stm32l4xx_hal_ltdc.c.

488 {
489  HAL_StatusTypeDef status = HAL_OK;
490 
491  /* Process locked */
492  __HAL_LOCK(hltdc);
493 
494  if (hltdc->State == HAL_LTDC_STATE_READY)
495  {
496  switch (CallbackID)
497  {
499  hltdc->LineEventCallback = HAL_LTDC_LineEventCallback; /* Legacy weak LineEventCallback */
500  break;
501 
503  hltdc->ReloadEventCallback = HAL_LTDC_ReloadEventCallback; /* Legacy weak ReloadEventCallback */
504  break;
505 
506  case HAL_LTDC_ERROR_CB_ID :
507  hltdc->ErrorCallback = HAL_LTDC_ErrorCallback; /* Legacy weak ErrorCallback */
508  break;
509 
511  hltdc->MspInitCallback = HAL_LTDC_MspInit; /* Legcay weak MspInit Callback */
512  break;
513 
515  hltdc->MspDeInitCallback = HAL_LTDC_MspDeInit; /* Legcay weak MspDeInit Callback */
516  break;
517 
518  default :
519  /* Update the error code */
520  hltdc->ErrorCode |= HAL_LTDC_ERROR_INVALID_CALLBACK;
521  /* Return error status */
522  status = HAL_ERROR;
523  break;
524  }
525  }
526  else if (hltdc->State == HAL_LTDC_STATE_RESET)
527  {
528  switch (CallbackID)
529  {
531  hltdc->MspInitCallback = HAL_LTDC_MspInit; /* Legcay weak MspInit Callback */
532  break;
533 
535  hltdc->MspDeInitCallback = HAL_LTDC_MspDeInit; /* Legcay weak MspDeInit Callback */
536  break;
537 
538  default :
539  /* Update the error code */
540  hltdc->ErrorCode |= HAL_LTDC_ERROR_INVALID_CALLBACK;
541  /* Return error status */
542  status = HAL_ERROR;
543  break;
544  }
545  }
546  else
547  {
548  /* Update the error code */
549  hltdc->ErrorCode |= HAL_LTDC_ERROR_INVALID_CALLBACK;
550  /* Return error status */
551  status = HAL_ERROR;
552  }
553 
554  /* Release Lock */
555  __HAL_UNLOCK(hltdc);
556 
557  return status;
558 }
void HAL_LTDC_MspDeInit(LTDC_HandleTypeDef *hltdc)
De-initialize the LTDC MSP.
void HAL_LTDC_MspInit(LTDC_HandleTypeDef *hltdc)
Initialize the LTDC MSP.
__weak void HAL_LTDC_LineEventCallback(LTDC_HandleTypeDef *hltdc)
Line Event callback.
__HAL_UNLOCK(hrtc)
__HAL_LOCK(hrtc)
return HAL_OK
__weak void HAL_LTDC_ErrorCallback(LTDC_HandleTypeDef *hltdc)
Error LTDC callback.
__weak void HAL_LTDC_ReloadEventCallback(LTDC_HandleTypeDef *hltdc)
Reload Event callback.