8080 LCD

[中文]

1 Introduction

The project is verified mcu interface display function,randoms color are displayed every second after power on

2 Code Path

demo path:./projects/peripheral/lcd_8080

3.Code explanation

compile commands:make bk7258 PROJECT=peripheral/lcd_8080

Attention

how to config LCD RGB interface or MCU 8080 is configed by cd_device_t member “type”

LCD conifig by default:

const lcd_device_t lcd_device_st7796s =
{
        .id = LCD_DEVICE_ST7796S,
        .name = "st7796s",
        .type = LCD_TYPE_MCU8080,
        .ppi = PPI_320X480,
        .mcu = &lcd_mcu,
        .init = lcd_st7796s_init,
        .lcd_off = st7796s_lcd_off,
};

the another params:

pixel_format_t src_fmt;  /**< source data format: input to display module data format(rgb565/rgb888/yuv)*/
pixel_format_t out_fmt;   /**< display module output data format(rgb565/rgb666/rgb888), input to lcd device,*/

is the same function as to the following API:

lcd_hal_rgb_set_in_out_format(src_fmt, out_fmt);

LCD MCU config step

  • step 1: open lcd

media_app_lcd_pipeline_disp_open
media_app_lcd_example_display
  • step 2:malloc psram

frame_buffer_display_malloc

after psram malloc, should config frame:

uint32_t size = ppi_to_pixel_x(lcd_open->device_ppi) * ppi_to_pixel_y(lcd_open->device_ppi) * 2;

frame = frame_buffer_display_malloc(size);

frame->width = ppi_to_pixel_x(lcd_open->device_ppi);
frame->height = ppi_to_pixel_y(lcd_open->device_ppi);
frame->fmt = PIXEL_FMT_RGB565;
  • step 3:fill color

lcd_fill_rand_color
  • step 4:display request

lcd_display_frame_request
  • step 5:cycle step2-4