怎么样,把GUI去掉后,能够驱动spi lcd(ST7789)显示一张已经放在PSRAM的"RGB565.bin"的图片?启动GUI占用太多内存资源,我们玩具类产品,显示眼睛,完全不用GUI。
怎么样,把GUI去掉后,能够驱动spi lcd(ST7789)显示一张已经放在PSRAM的"RGB565.bin"的图片?
-
- Posts: 62
Re: 怎么样,把GUI去掉后,能够驱动spi lcd(ST7789)显示一张已经放在PSRAM的"RGB565.bin"的图片?
你好,正常初始化屏幕后,按照下面的方法(放入cp1侧),直接将解码后的图片起始指针disp_buf传入void lcd_frame_buffer_flush(uint8_t *disp_buf)
Code: Select all
#include "driver/media_types.h"
#include <frame_buffer.h>
#include "yuv_encode.h"
static frame_buffer_t *lvgl_frame_buffer = NULL;
static void lvgl_frame_buffer_free(frame_buffer_t *frame_buffer)
{
//To do
}
const frame_buffer_callback_t lvgl_frame_buffer_cb =
{
.free = lvgl_frame_buffer_free,
};
void lcd_frame_buffer_init(UINT16_T lcd_width/*屏幕宽*/, UINT16_T lcd_height/*屏幕高*/)
{
lvgl_frame_buffer = tkl_system_psram_malloc(sizeof(frame_buffer_t));
if (!lvgl_frame_buffer) {
bk_printf("%s %d lvgl_frame_buffer malloc fail\r\n", __func__, __LINE__);
return ret;
}
memset(lvgl_frame_buffer, 0, sizeof(frame_buffer_t));
lvgl_frame_buffer->width = lcd_width;
lvgl_frame_buffer->height = lcd_height;
lvgl_frame_buffer->fmt = PIXEL_FMT_RGB565;
lvgl_frame_buffer->cb = &lvgl_frame_buffer_cb;
}
void lcd_frame_buffer_flush(uint8_t *disp_buf)
{
lvgl_frame_buffer->frame = (uint8_t *)disp_buf;
lcd_display_frame_request(lvgl_frame_buffer);
}