|
发表于 2020-5-29 08:43:32
|
显示全部楼层
UINT stm32f429_graphics_driver_setup_24xrgb(GX_DISPLAY *display)
{
/* initialize the low-level drawing function pointers
for windows, these are always just the generic funcions,
but for some hardware, these will be customized,
optimized functions specific to that hardware
*/
_gx_display_driver_24xrgb_setup(display, (VOID*)STM32F746G_DISCO_SCREEN_HANDLE, stm32f429_24xrgb_buffer_toggle);
#if defined(GX_TIMING_ENABLE)
display->gx_display_driver_drawing_initiate = gx_chromeart_drawing_initiate;
display->gx_display_driver_drawing_complete = gx_chromeart_drawing_complete;
#endif
#if defined(GX_CHROMEART_ENABLE)
/* override those functions that can be accelerated with DMA2D */
display->gx_display_driver_horizontal_line_draw = gx_chromeart_horizontal_line_draw;
display -> gx_display_driver_vertical_line_draw = gx_chromeart_vertical_line_draw;
display -> gx_display_driver_canvas_copy = gx_chromeart_canvas_copy;
display -> gx_display_driver_pixelmap_draw = gx_chromeart_pixelmap_draw;
display -> gx_display_driver_pixelmap_blend = gx_chromeart_pixelmap_blend;
display -> gx_display_driver_8bit_glyph_draw = gx_chromeart_glyph_8bit_draw;
//display -> gx_display_driver_callback_assign = gx_display_wait_function_set;
//display -> gx_display_driver_canvas_blend = _gx_display_driver_24xrgb_canvas_blend;
//display -> gx_display_driver_4bit_glyph_draw = _gx_display_driver_generic_glyph_4bit_draw;
//display -> gx_display_driver_1bit_glyph_draw = _gx_display_driver_24bpp_glyph_1bit_draw;
#endif
/* Hardware Initialization */
BSP_LCD_Init();
BSP_LCD_LayerDefaultInit(0, (uint32_t)&frame_buffer);
BSP_LCD_SelectLayer(0);
// clear the frame buffer
memset(frame_buffer, 0, STM32F746G_DISCO_SCREEN_WIDTH * STM32F746G_DISCO_SCREEN_HEIGHT * 4);
// configure default DMA params
DefaultDmaInitStruct();
BSP_LCD_DisplayOn();
// drive the timing pins high
TIMING_FRAME_CALC_END
TIMING_CPU_WORK_END
/* Return successful status. */
return(GX_SUCCESS);
} |
|