/** * @brief Sets an LCD Layer visible * @param LayerIndex: Visible Layer * @param State: New state of the specified layer * This parameter can be one of the following values: * @arg ENABLE * @arg DISABLE * @retval None */ void BSP_LCD_SetLayerVisible(uint32_t LayerIndex, FunctionalState State) { if (State == ENABLE) { __HAL_LTDC_LAYER_ENABLE(<dc_handle, LayerIndex); } else { __HAL_LTDC_LAYER_DISABLE(<dc_handle, LayerIndex); } __HAL_LTDC_RELOAD_CONFIG(<dc_handle); }
/** * @brief End of Refresh DSI callback. * @param hdsi: pointer to a DSI_HandleTypeDef structure that contains * the configuration information for the DSI. * @retval None */ void HAL_DSI_EndOfRefreshCallback(DSI_HandleTypeDef *hdsi) { if(pending_buffer >= 0) { if(active_area == LEFT_AREA) { /* Mask the TE */ HAL_DSI_ShortWrite(hdsi, 0, DSI_DCS_SHORT_PKT_WRITE_P1, OTM8009A_CMD_TEOFF, 0x00); /* Disable DSI Wrapper */ __HAL_DSI_WRAPPER_DISABLE(&hdsi_eval); /* Update LTDC configuaration */ LTDC_LAYER(&hltdc_eval, 0)->CFBAR = LAYER0_ADDRESS + 400 * 4; __HAL_LTDC_RELOAD_CONFIG(&hltdc_eval); /* Enable DSI Wrapper */ __HAL_DSI_WRAPPER_ENABLE(&hdsi_eval); HAL_DSI_LongWrite(hdsi, 0, DSI_DCS_LONG_PKT_WRITE, 4, OTM8009A_CMD_CASET, pColRight); /* Refresh the right part of the display */ HAL_DSI_Refresh(hdsi); } else if(active_area == RIGHT_AREA) { /* Disable DSI Wrapper */ __HAL_DSI_WRAPPER_DISABLE(&hdsi_eval); /* Update LTDC configuaration */ LTDC_LAYER(&hltdc_eval, 0)->CFBAR = LAYER0_ADDRESS; __HAL_LTDC_RELOAD_CONFIG(&hltdc_eval); /* Enable DSI Wrapper */ __HAL_DSI_WRAPPER_ENABLE(&hdsi_eval); HAL_DSI_LongWrite(hdsi, 0, DSI_DCS_LONG_PKT_WRITE, 4, OTM8009A_CMD_CASET, pColLeft); pending_buffer = -1; } } active_area = (active_area == LEFT_AREA)? RIGHT_AREA : LEFT_AREA; }
/** * @brief Line Event callback. * @param hltdc: pointer to a LTDC_HandleTypeDef structure that contains * the configuration information for the LTDC. * @retval None */ void HAL_LTDC_LineEventCallback(LTDC_HandleTypeDef *hltdc) { if(pend_buffer >= 0) { LTDC_LAYER(hltdc, 0)->CFBAR = ((uint32_t)Buffers[pend_buffer]); __HAL_LTDC_RELOAD_CONFIG(hltdc); front_buffer = pend_buffer; pend_buffer = -1; } HAL_LTDC_ProgramLineEvent(hltdc, 0); }
/** * @brief End of Refresh DSI callback. * @param hdsi: pointer to a DSI_HandleTypeDef structure that contains * the configuration information for the DSI. * @retval None */ void HAL_DSI_EndOfRefreshCallback(DSI_HandleTypeDef *hdsi) { if(pend_buffer >= 0) { /* Disable DSI Wrapper */ __HAL_DSI_WRAPPER_DISABLE(&hdsi_eval); /* Update LTDC configuaration */ LTDC_LAYER(&hltdc_eval, 0)->CFBAR = ((uint32_t)Buffers[pend_buffer]); __HAL_LTDC_RELOAD_CONFIG(&hltdc_eval); /* Enable DSI Wrapper */ __HAL_DSI_WRAPPER_ENABLE(&hdsi_eval); front_buffer = pend_buffer; pend_buffer = -1; } }