166 #ifdef HAL_DMA2D_MODULE_ENABLED 187 #define DMA2D_TIMEOUT_ABORT (1000U) 188 #define DMA2D_TIMEOUT_SUSPEND (1000U) 252 #if defined(DMA2D_LINE_OFFSET_MODE_SUPPORT) 255 #if defined(DMA2D_OUTPUT_TWO_BY_TWO_SWAP_SUPPORT) 259 #if (USE_HAL_DMA2D_REGISTER_CALLBACKS == 1) 287 #if defined(DMA2D_LINE_OFFSET_MODE_SUPPORT) 294 #if defined(DMA2D_OUTPUT_TWO_BY_TWO_SWAP_SUPPORT) 307 hdma2d->
ErrorCode = HAL_DMA2D_ERROR_NONE;
334 if (__HAL_RCC_DMA2D_IS_CLK_ENABLED())
337 if ((hdma2d->
Instance->CR & DMA2D_CR_START) == DMA2D_CR_START)
348 if ((hdma2d->
Instance->BGPFCCR & DMA2D_BGPFCCR_START) == DMA2D_BGPFCCR_START)
359 if ((hdma2d->
Instance->FGPFCCR & DMA2D_FGPFCCR_START) == DMA2D_FGPFCCR_START)
380 #if (USE_HAL_DMA2D_REGISTER_CALLBACKS == 1) 396 hdma2d->
ErrorCode = HAL_DMA2D_ERROR_NONE;
439 #if (USE_HAL_DMA2D_REGISTER_CALLBACKS == 1) 458 HAL_StatusTypeDef status =
HAL_OK;
460 if(pCallback == NULL)
463 hdma2d->
ErrorCode |= HAL_DMA2D_ERROR_INVALID_CALLBACK;
499 hdma2d->
ErrorCode |= HAL_DMA2D_ERROR_INVALID_CALLBACK;
519 hdma2d->
ErrorCode |= HAL_DMA2D_ERROR_INVALID_CALLBACK;
528 hdma2d->
ErrorCode |= HAL_DMA2D_ERROR_INVALID_CALLBACK;
555 HAL_StatusTypeDef status =
HAL_OK;
590 hdma2d->
ErrorCode |= HAL_DMA2D_ERROR_INVALID_CALLBACK;
610 hdma2d->
ErrorCode |= HAL_DMA2D_ERROR_INVALID_CALLBACK;
619 hdma2d->
ErrorCode |= HAL_DMA2D_ERROR_INVALID_CALLBACK;
699 __HAL_DMA2D_ENABLE(hdma2d);
733 __HAL_DMA2D_ENABLE_IT(hdma2d, DMA2D_IT_TC|DMA2D_IT_TE|DMA2D_IT_CE);
736 __HAL_DMA2D_ENABLE(hdma2d);
765 WRITE_REG(hdma2d->
Instance->BGMAR, SrcAddress2);
771 __HAL_DMA2D_ENABLE(hdma2d);
800 WRITE_REG(hdma2d->
Instance->BGMAR, SrcAddress2);
806 __HAL_DMA2D_ENABLE_IT(hdma2d, DMA2D_IT_TC|DMA2D_IT_TE|DMA2D_IT_CE);
809 __HAL_DMA2D_ENABLE(hdma2d);
834 while((hdma2d->
Instance->CR & DMA2D_CR_START) != 0U)
836 if((
HAL_GetTick() - tickstart ) > DMA2D_TIMEOUT_ABORT)
839 hdma2d->
ErrorCode |= HAL_DMA2D_ERROR_TIMEOUT;
852 __HAL_DMA2D_DISABLE_IT(hdma2d, DMA2D_IT_TC|DMA2D_IT_TE|DMA2D_IT_CE);
883 while ((hdma2d->
Instance->CR & (DMA2D_CR_SUSP | DMA2D_CR_START)) == DMA2D_CR_START)
885 if((
HAL_GetTick() - tickstart ) > DMA2D_TIMEOUT_SUSPEND)
888 hdma2d->
ErrorCode |= HAL_DMA2D_ERROR_TIMEOUT;
898 if ((hdma2d->
Instance->CR & DMA2D_CR_START) != 0U)
921 if((hdma2d->
Instance->CR & (DMA2D_CR_SUSP | DMA2D_CR_START)) == (DMA2D_CR_SUSP | DMA2D_CR_START))
957 if(LayerIdx == DMA2D_BACKGROUND_LAYER)
960 SET_BIT(hdma2d->
Instance->BGPFCCR, DMA2D_BGPFCCR_START);
965 SET_BIT(hdma2d->
Instance->FGPFCCR, DMA2D_FGPFCCR_START);
998 if(LayerIdx == DMA2D_BACKGROUND_LAYER)
1001 WRITE_REG(hdma2d->
Instance->BGCMAR, (uint32_t)CLUTCfg.
pCLUT);
1005 ((CLUTCfg.
Size << DMA2D_BGPFCCR_CS_Pos) | (CLUTCfg.
CLUTColorMode << DMA2D_BGPFCCR_CCM_Pos)));
1008 SET_BIT(hdma2d->
Instance->BGPFCCR, DMA2D_BGPFCCR_START);
1014 WRITE_REG(hdma2d->
Instance->FGCMAR, (uint32_t)CLUTCfg.
pCLUT);
1018 ((CLUTCfg.
Size << DMA2D_FGPFCCR_CS_Pos) | (CLUTCfg.
CLUTColorMode << DMA2D_FGPFCCR_CCM_Pos)));
1021 SET_BIT(hdma2d->
Instance->FGPFCCR, DMA2D_FGPFCCR_START);
1052 if(LayerIdx == DMA2D_BACKGROUND_LAYER)
1055 WRITE_REG(hdma2d->
Instance->BGCMAR, (uint32_t)CLUTCfg.
pCLUT);
1059 ((CLUTCfg.
Size << DMA2D_BGPFCCR_CS_Pos) | (CLUTCfg.
CLUTColorMode << DMA2D_BGPFCCR_CCM_Pos)));
1062 __HAL_DMA2D_ENABLE_IT(hdma2d, DMA2D_IT_CTC | DMA2D_IT_TE | DMA2D_IT_CE |DMA2D_IT_CAE);
1065 SET_BIT(hdma2d->
Instance->BGPFCCR, DMA2D_BGPFCCR_START);
1071 WRITE_REG(hdma2d->
Instance->FGCMAR, (uint32_t)CLUTCfg.
pCLUT);
1075 ((CLUTCfg.
Size << DMA2D_FGPFCCR_CS_Pos) | (CLUTCfg.
CLUTColorMode << DMA2D_FGPFCCR_CCM_Pos)));
1078 __HAL_DMA2D_ENABLE_IT(hdma2d, DMA2D_IT_CTC | DMA2D_IT_TE | DMA2D_IT_CE |DMA2D_IT_CAE);
1081 SET_BIT(hdma2d->
Instance->FGPFCCR, DMA2D_FGPFCCR_START);
1099 const __IO uint32_t * reg = &(hdma2d->
Instance->BGPFCCR);
1102 SET_BIT(hdma2d->
Instance->CR, DMA2D_CR_ABORT);
1105 if(LayerIdx == DMA2D_FOREGROUND_LAYER)
1107 reg = &(hdma2d->
Instance->FGPFCCR);
1115 while((*reg & DMA2D_BGPFCCR_START) != 0U)
1117 if((
HAL_GetTick() - tickstart ) > DMA2D_TIMEOUT_ABORT)
1120 hdma2d->
ErrorCode |= HAL_DMA2D_ERROR_TIMEOUT;
1133 __HAL_DMA2D_DISABLE_IT(hdma2d, DMA2D_IT_CTC | DMA2D_IT_TE | DMA2D_IT_CE |DMA2D_IT_CAE);
1156 uint32_t loadsuspended;
1157 const __IO uint32_t * reg = &(hdma2d->
Instance->BGPFCCR);
1160 SET_BIT(hdma2d->
Instance->CR, DMA2D_CR_SUSP);
1163 if(LayerIdx == DMA2D_FOREGROUND_LAYER)
1165 reg = &(hdma2d->
Instance->FGPFCCR);
1172 loadsuspended = ((hdma2d->
Instance->CR & DMA2D_CR_SUSP) == DMA2D_CR_SUSP)? 1UL: 0UL;
1173 loadsuspended |= ((*reg & DMA2D_BGPFCCR_START) != DMA2D_BGPFCCR_START)? 1UL: 0UL;
1174 while (loadsuspended == 0UL)
1176 if((
HAL_GetTick() - tickstart ) > DMA2D_TIMEOUT_SUSPEND)
1179 hdma2d->
ErrorCode |= HAL_DMA2D_ERROR_TIMEOUT;
1186 loadsuspended = ((hdma2d->
Instance->CR & DMA2D_CR_SUSP) == DMA2D_CR_SUSP)? 1UL: 0UL;
1187 loadsuspended |= ((*reg & DMA2D_BGPFCCR_START) != DMA2D_BGPFCCR_START)? 1UL: 0UL;
1191 if ((*reg & DMA2D_BGPFCCR_START) != 0U)
1217 if(LayerIdx == DMA2D_BACKGROUND_LAYER)
1220 if ((hdma2d->
Instance->CR & DMA2D_CR_SUSP) == DMA2D_CR_SUSP)
1222 if((hdma2d->
Instance->BGPFCCR & DMA2D_BGPFCCR_START) == DMA2D_BGPFCCR_START)
1232 if ((hdma2d->
Instance->CR & DMA2D_CR_SUSP) == DMA2D_CR_SUSP)
1234 if ((hdma2d->
Instance->FGPFCCR & DMA2D_FGPFCCR_START) == DMA2D_FGPFCCR_START)
1260 uint32_t layer_start;
1261 __IO uint32_t isrflags = 0x0U;
1264 if((hdma2d->
Instance->CR & DMA2D_CR_START) != 0U)
1269 while(__HAL_DMA2D_GET_FLAG(hdma2d, DMA2D_FLAG_TC) == 0U)
1271 isrflags = READ_REG(hdma2d->
Instance->ISR);
1272 if ((isrflags & (DMA2D_FLAG_CE|DMA2D_FLAG_TE)) != 0U)
1274 if ((isrflags & DMA2D_FLAG_CE) != 0U)
1276 hdma2d->
ErrorCode |= HAL_DMA2D_ERROR_CE;
1278 if ((isrflags & DMA2D_FLAG_TE) != 0U)
1280 hdma2d->
ErrorCode |= HAL_DMA2D_ERROR_TE;
1283 __HAL_DMA2D_CLEAR_FLAG(hdma2d, DMA2D_FLAG_CE | DMA2D_FLAG_TE);
1294 if(Timeout != HAL_MAX_DELAY)
1296 if(((
HAL_GetTick() - tickstart ) > Timeout)||(Timeout == 0U))
1299 hdma2d->
ErrorCode |= HAL_DMA2D_ERROR_TIMEOUT;
1313 layer_start = hdma2d->
Instance->FGPFCCR & DMA2D_FGPFCCR_START;
1314 layer_start |= hdma2d->
Instance->BGPFCCR & DMA2D_BGPFCCR_START;
1315 if (layer_start != 0U)
1320 while(__HAL_DMA2D_GET_FLAG(hdma2d, DMA2D_FLAG_CTC) == 0U)
1322 isrflags = READ_REG(hdma2d->
Instance->ISR);
1323 if ((isrflags & (DMA2D_FLAG_CAE|DMA2D_FLAG_CE|DMA2D_FLAG_TE)) != 0U)
1325 if ((isrflags & DMA2D_FLAG_CAE) != 0U)
1327 hdma2d->
ErrorCode |= HAL_DMA2D_ERROR_CAE;
1329 if ((isrflags & DMA2D_FLAG_CE) != 0U)
1331 hdma2d->
ErrorCode |= HAL_DMA2D_ERROR_CE;
1333 if ((isrflags & DMA2D_FLAG_TE) != 0U)
1335 hdma2d->
ErrorCode |= HAL_DMA2D_ERROR_TE;
1338 __HAL_DMA2D_CLEAR_FLAG(hdma2d, DMA2D_FLAG_CAE | DMA2D_FLAG_CE | DMA2D_FLAG_TE);
1349 if(Timeout != HAL_MAX_DELAY)
1351 if(((
HAL_GetTick() - tickstart ) > Timeout)||(Timeout == 0U))
1354 hdma2d->
ErrorCode |= HAL_DMA2D_ERROR_TIMEOUT;
1369 __HAL_DMA2D_CLEAR_FLAG(hdma2d, DMA2D_FLAG_TC|DMA2D_FLAG_CTC);
1387 uint32_t isrflags = READ_REG(hdma2d->
Instance->ISR);
1388 uint32_t crflags = READ_REG(hdma2d->
Instance->CR);
1391 if ((isrflags & DMA2D_FLAG_TE) != 0U)
1393 if ((crflags & DMA2D_IT_TE) != 0U)
1396 __HAL_DMA2D_DISABLE_IT(hdma2d, DMA2D_IT_TE);
1399 hdma2d->
ErrorCode |= HAL_DMA2D_ERROR_TE;
1402 __HAL_DMA2D_CLEAR_FLAG(hdma2d, DMA2D_FLAG_TE);
1418 if ((isrflags & DMA2D_FLAG_CE) != 0U)
1420 if ((crflags & DMA2D_IT_CE) != 0U)
1423 __HAL_DMA2D_DISABLE_IT(hdma2d, DMA2D_IT_CE);
1426 __HAL_DMA2D_CLEAR_FLAG(hdma2d, DMA2D_FLAG_CE);
1429 hdma2d->
ErrorCode |= HAL_DMA2D_ERROR_CE;
1445 if ((isrflags & DMA2D_FLAG_CAE) != 0U)
1447 if ((crflags & DMA2D_IT_CAE) != 0U)
1450 __HAL_DMA2D_DISABLE_IT(hdma2d, DMA2D_IT_CAE);
1453 __HAL_DMA2D_CLEAR_FLAG(hdma2d, DMA2D_FLAG_CAE);
1456 hdma2d->
ErrorCode |= HAL_DMA2D_ERROR_CAE;
1472 if ((isrflags & DMA2D_FLAG_TW) != 0U)
1474 if ((crflags & DMA2D_IT_TW) != 0U)
1477 __HAL_DMA2D_DISABLE_IT(hdma2d, DMA2D_IT_TW);
1480 __HAL_DMA2D_CLEAR_FLAG(hdma2d, DMA2D_FLAG_TW);
1483 #if (USE_HAL_DMA2D_REGISTER_CALLBACKS == 1) 1492 if ((isrflags & DMA2D_FLAG_TC) != 0U)
1494 if ((crflags & DMA2D_IT_TC) != 0U)
1497 __HAL_DMA2D_DISABLE_IT(hdma2d, DMA2D_IT_TC);
1500 __HAL_DMA2D_CLEAR_FLAG(hdma2d, DMA2D_FLAG_TC);
1503 hdma2d->
ErrorCode |= HAL_DMA2D_ERROR_NONE;
1519 if ((isrflags & DMA2D_FLAG_CTC) != 0U)
1521 if ((crflags & DMA2D_IT_CTC) != 0U)
1524 __HAL_DMA2D_DISABLE_IT(hdma2d, DMA2D_IT_CTC);
1527 __HAL_DMA2D_CLEAR_FLAG(hdma2d, DMA2D_FLAG_CTC);
1530 hdma2d->
ErrorCode |= HAL_DMA2D_ERROR_NONE;
1539 #if (USE_HAL_DMA2D_REGISTER_CALLBACKS == 1) 1617 uint32_t regMask, regValue;
1639 pLayerCfg = &hdma2d->
LayerCfg[LayerIdx];
1644 regMask = (DMA2D_BGPFCCR_CM | DMA2D_BGPFCCR_AM | DMA2D_BGPFCCR_ALPHA | DMA2D_BGPFCCR_AI | DMA2D_BGPFCCR_RBS);
1649 regValue |= (pLayerCfg->
InputAlpha & DMA2D_BGPFCCR_ALPHA);
1653 regValue |= (pLayerCfg->
InputAlpha << DMA2D_BGPFCCR_ALPHA_Pos);
1657 if(LayerIdx == DMA2D_BACKGROUND_LAYER)
1668 WRITE_REG(hdma2d->
Instance->BGCOLR, pLayerCfg->
InputAlpha & (DMA2D_BGCOLR_BLUE|DMA2D_BGCOLR_GREEN|DMA2D_BGCOLR_RED));
1685 WRITE_REG(hdma2d->
Instance->FGCOLR, pLayerCfg->
InputAlpha & (DMA2D_FGCOLR_BLUE|DMA2D_FGCOLR_GREEN|DMA2D_FGCOLR_RED));
1722 if(LayerIdx == DMA2D_BACKGROUND_LAYER)
1725 WRITE_REG(hdma2d->
Instance->BGCMAR, (uint32_t)CLUTCfg.
pCLUT);
1729 ((CLUTCfg.
Size << DMA2D_BGPFCCR_CS_Pos) | (CLUTCfg.
CLUTColorMode << DMA2D_BGPFCCR_CCM_Pos)));
1735 WRITE_REG(hdma2d->
Instance->FGCMAR, (uint32_t)CLUTCfg.
pCLUT);
1739 ((CLUTCfg.
Size << DMA2D_FGPFCCR_CS_Pos) | (CLUTCfg.
CLUTColorMode << DMA2D_FGPFCCR_CCM_Pos)));
1767 if (Line > DMA2D_LWR_LW)
1780 WRITE_REG(hdma2d->
Instance->LWR, Line);
1783 __HAL_DMA2D_ENABLE_IT(hdma2d, DMA2D_IT_TW);
1808 SET_BIT(hdma2d->
Instance->AMTCR, DMA2D_AMTCR_EN);
1857 MODIFY_REG(hdma2d->
Instance->AMTCR, DMA2D_AMTCR_DT, (((uint32_t) DeadTime) << DMA2D_AMTCR_DT_Pos));
1896 return hdma2d->
State;
1942 MODIFY_REG(hdma2d->
Instance->NLR, (DMA2D_NLR_NL|DMA2D_NLR_PL), (Height| (Width << DMA2D_NLR_PL_Pos)));
1945 WRITE_REG(hdma2d->
Instance->OMAR, DstAddress);
1948 if (hdma2d->
Init.
Mode == DMA2D_R2M)
1950 tmp1 = pdata & DMA2D_OCOLR_ALPHA_1;
1951 tmp2 = pdata & DMA2D_OCOLR_RED_1;
1952 tmp3 = pdata & DMA2D_OCOLR_GREEN_1;
1953 tmp4 = pdata & DMA2D_OCOLR_BLUE_1;
1958 tmp = (tmp3 | tmp2 | tmp1| tmp4);
1962 tmp = (tmp3 | tmp2 | tmp4);
1966 tmp2 = (tmp2 >> 19U);
1967 tmp3 = (tmp3 >> 10U);
1968 tmp4 = (tmp4 >> 3U );
1969 tmp = ((tmp3 << 5U) | (tmp2 << 11U) | tmp4);
1973 tmp1 = (tmp1 >> 31U);
1974 tmp2 = (tmp2 >> 19U);
1975 tmp3 = (tmp3 >> 11U);
1976 tmp4 = (tmp4 >> 3U );
1977 tmp = ((tmp3 << 5U) | (tmp2 << 10U) | (tmp1 << 15U) | tmp4);
1981 tmp1 = (tmp1 >> 28U);
1982 tmp2 = (tmp2 >> 20U);
1983 tmp3 = (tmp3 >> 12U);
1984 tmp4 = (tmp4 >> 4U );
1985 tmp = ((tmp3 << 4U) | (tmp2 << 8U) | (tmp1 << 12U) | tmp4);
1988 WRITE_REG(hdma2d->
Instance->OCOLR, tmp);
1993 WRITE_REG(hdma2d->
Instance->FGMAR, pdata);
HAL_DMA2D_CallbackIDTypeDef
HAL DMA2D common Callback ID enumeration definition.
DMA2D_LayerCfgTypeDef LayerCfg[MAX_DMA2D_LAYER]
void HAL_DMA2D_MspDeInit(DMA2D_HandleTypeDef *hdma2d)
DeInitializes the DMA2D MSP.
HAL_DMA2D_StateTypeDef HAL_DMA2D_GetState(DMA2D_HandleTypeDef *hdma2d)
Return the DMA2D state.
HAL_StatusTypeDef HAL_DMA2D_CLUTLoading_Abort(DMA2D_HandleTypeDef *hdma2d, uint32_t LayerIdx)
Abort the DMA2D CLUT loading.
HAL_StatusTypeDef HAL_DMA2D_CLUTLoading_Resume(DMA2D_HandleTypeDef *hdma2d, uint32_t LayerIdx)
Resume the DMA2D CLUT loading.
HAL_StatusTypeDef HAL_DMA2D_BlendingStart_IT(DMA2D_HandleTypeDef *hdma2d, uint32_t SrcAddress1, uint32_t SrcAddress2, uint32_t DstAddress, uint32_t Width, uint32_t Height)
Start the multi-source DMA2D Transfer with interrupt enabled.
HAL_StatusTypeDef HAL_DMA2D_CLUTLoading_Suspend(DMA2D_HandleTypeDef *hdma2d, uint32_t LayerIdx)
Suspend the DMA2D CLUT loading.
HAL_StatusTypeDef HAL_DMA2D_PollForTransfer(DMA2D_HandleTypeDef *hdma2d, uint32_t Timeout)
Polling for transfer complete or CLUT loading.
HAL_StatusTypeDef HAL_DMA2D_Start_IT(DMA2D_HandleTypeDef *hdma2d, uint32_t pdata, uint32_t DstAddress, uint32_t Width, uint32_t Height)
Start the DMA2D Transfer with interrupt enabled.
void HAL_DMA2D_MspInit(DMA2D_HandleTypeDef *hdma2d)
Initializes the DMA2D MSP.
DMA2D handle Structure definition.
HAL_StatusTypeDef HAL_DMA2D_Start(DMA2D_HandleTypeDef *hdma2d, uint32_t pdata, uint32_t DstAddress, uint32_t Width, uint32_t Height)
Start the DMA2D Transfer.
HAL_StatusTypeDef HAL_DMA2D_Resume(DMA2D_HandleTypeDef *hdma2d)
Resume the DMA2D Transfer.
This file contains all the functions prototypes for the HAL module driver.
DMA2D CLUT Structure definition.
HAL_StatusTypeDef HAL_DMA2D_Init(DMA2D_HandleTypeDef *hdma2d)
Initialize the DMA2D according to the specified parameters in the DMA2D_InitTypeDef and create the as...
HAL_StatusTypeDef HAL_DMA2D_ConfigLayer(DMA2D_HandleTypeDef *hdma2d, uint32_t LayerIdx)
Configure the DMA2D Layer according to the specified parameters in the DMA2D_HandleTypeDef.
HAL_StatusTypeDef HAL_DMA2D_BlendingStart(DMA2D_HandleTypeDef *hdma2d, uint32_t SrcAddress1, uint32_t SrcAddress2, uint32_t DstAddress, uint32_t Width, uint32_t Height)
Start the multi-source DMA2D Transfer.
HAL_StatusTypeDef HAL_DMA2D_Suspend(DMA2D_HandleTypeDef *hdma2d)
Suspend the DMA2D Transfer.
void(* MspDeInitCallback)(struct __DMA2D_HandleTypeDef *hdma2d)
uint32_t HAL_GetTick(void)
Provide a tick value in millisecond.
void(* pDMA2D_CallbackTypeDef)(DMA2D_HandleTypeDef *hdma2d)
HAL DMA2D Callback pointer definition.
HAL_StatusTypeDef HAL_DMA2D_EnableDeadTime(DMA2D_HandleTypeDef *hdma2d)
Enable DMA2D dead time feature.
HAL_StatusTypeDef HAL_DMA2D_DeInit(DMA2D_HandleTypeDef *hdma2d)
Deinitializes the DMA2D peripheral registers to their default reset values.
CLEAR_BIT(hrtc->Instance->CR, RTC_CR_WUTE)
HAL_StatusTypeDef HAL_DMA2D_ProgramLineEvent(DMA2D_HandleTypeDef *hdma2d, uint32_t Line)
Configure the line watermark.
HAL_StatusTypeDef HAL_DMA2D_DisableDeadTime(DMA2D_HandleTypeDef *hdma2d)
Disable DMA2D dead time feature.
HAL_StatusTypeDef HAL_DMA2D_ConfigCLUT(DMA2D_HandleTypeDef *hdma2d, DMA2D_CLUTCfgTypeDef CLUTCfg, uint32_t LayerIdx)
Configure the DMA2D CLUT Transfer.
HAL_StatusTypeDef HAL_DMA2D_UnRegisterCallback(DMA2D_HandleTypeDef *hdma2d, HAL_DMA2D_CallbackIDTypeDef CallbackID)
Unregister a DMA2D Callback DMA2D Callback is redirected to the weak (surcharged) predefined callback...
void(* XferErrorCallback)(struct __DMA2D_HandleTypeDef *hdma2d)
void HAL_DMA2D_LineEventCallback(DMA2D_HandleTypeDef *hdma2d)
Transfer watermark callback.
void HAL_DMA2D_IRQHandler(DMA2D_HandleTypeDef *hdma2d)
Handle DMA2D interrupt request.
DMA2D Layer structure definition.
HAL_StatusTypeDef HAL_DMA2D_CLUTLoad(DMA2D_HandleTypeDef *hdma2d, DMA2D_CLUTCfgTypeDef CLUTCfg, uint32_t LayerIdx)
Start DMA2D CLUT Loading.
HAL_StatusTypeDef HAL_DMA2D_ConfigDeadTime(DMA2D_HandleTypeDef *hdma2d, uint8_t DeadTime)
Configure dead time.
HAL_DMA2D_StateTypeDef
HAL DMA2D State structures definition.
static void DMA2D_SetConfig(DMA2D_HandleTypeDef *hdma2d, uint32_t pdata, uint32_t DstAddress, uint32_t Width, uint32_t Height)
Set the DMA2D transfer parameters.
uint32_t HAL_DMA2D_GetError(DMA2D_HandleTypeDef *hdma2d)
Return the DMA2D error code.
__IO HAL_DMA2D_StateTypeDef State
void(* MspInitCallback)(struct __DMA2D_HandleTypeDef *hdma2d)
void(* XferCpltCallback)(struct __DMA2D_HandleTypeDef *hdma2d)
HAL_StatusTypeDef HAL_DMA2D_CLUTLoad_IT(DMA2D_HandleTypeDef *hdma2d, DMA2D_CLUTCfgTypeDef CLUTCfg, uint32_t LayerIdx)
Start DMA2D CLUT Loading with interrupt enabled.
MODIFY_REG(hrtc->Instance->CR, RTC_CR_WUCKSEL,(uint32_t) WakeUpClock)
void HAL_DMA2D_CLUTLoadingCpltCallback(DMA2D_HandleTypeDef *hdma2d)
CLUT Transfer Complete callback.
void(* LineEventCallback)(struct __DMA2D_HandleTypeDef *hdma2d)
HAL_StatusTypeDef HAL_DMA2D_RegisterCallback(DMA2D_HandleTypeDef *hdma2d, HAL_DMA2D_CallbackIDTypeDef CallbackID, pDMA2D_CallbackTypeDef pCallback)
Register a User DMA2D Callback To be used instead of the weak (surcharged) predefined callback...
void(* CLUTLoadingCpltCallback)(struct __DMA2D_HandleTypeDef *hdma2d)
HAL_StatusTypeDef HAL_DMA2D_Abort(DMA2D_HandleTypeDef *hdma2d)
Abort the DMA2D Transfer.
HAL_StatusTypeDef HAL_DMA2D_EnableCLUT(DMA2D_HandleTypeDef *hdma2d, uint32_t LayerIdx)
Enable the DMA2D CLUT Transfer.
assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock))