使用【单片机多功能调试助手】进行【图片取模】并生成【LVGL8 C代码】的完整流程及注意事项。

一、准备工作

  1. 图片格式要求

    • 可使用 ​BMP/PNG/JPG​ 格式,推荐PNG格式。
    • 分辨率不超过屏幕尺寸(如240x240)。
    • 颜色深度需与LVGL配置一致(通过lv_conf.h中的LV_COLOR_DEPTH设置,如RGB565需16位)。
  2. 工具选择

    单片机多功能调试助手中的图片取模功能,支持丰富的输出类型,既支持LVGL8的C代码输出,亦支持LVGL9的C代码输出,还提供丰富参数的调节,如:扫描模式、自定义输出图片的宽度与高度、输出颜色深度、输出字节序等。

二、图片转换步骤

1.​导入图片

  • 打开助手,【输出类型】选中“LVGL8 C代码(*.c)”。
  • 设置图片最大宽高。
  • 选择颜色格式为 ​ARGB8565​(8位透明度+16位色)或 ​ARGB8888​(32位),以下选择ARGB8888。
  • 其他参数参照下图。

2.转换

  • 点击【转换】按钮,转换的C完成的代码保存到图片的路径下。

三、编译与运行

1.将转换的C代码添加到lvgl工程,如基于windows的仿真演示。

2.编写代码

static void img_create(void)
{
    // 声明图像资源
    LV_IMG_DECLARE(image_light);


    // 创建第一个图像控件
    lv_obj_t *img1 = lv_img_create(lv_scr_act());  // 在当前活动屏幕上创建图像控件
    lv_img_set_src(img1, &image_light);      // 设置图像源
    lv_obj_align(img1, LV_ALIGN_CENTER, 0, 0); // 将图像控件居中对齐到屏幕
    lv_obj_set_size(img1, image_light.header.w, image_light.header.h); // 设置图像控件的大小
}

3.调用img_create函数显示图片

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR szCmdLine, int nCmdShow)
{
 
    lv_init();

    lv_win32_init(hInstance, SW_SHOWNORMAL, 320, 240, NULL);

    img_create();


    while (!lv_win32_quit_signal)
    {

        lv_task_handler();
        lv_timer_handler(); 
        usleep(10000);     
    }
    return 0;
}

4.运行演示

四、习题

习题1:导出的图片横向显示。

提示:设置为垂直扫描。

习题2:对指定的文件夹批量导出C代码。

提示:选中文件夹,再点击【批量转换】按钮。

习题3:显示设备为16位色深且要支持透明度,如何正确选择输出颜色深度。

提示:输出颜色深度选择ARGB8565。

习题4:正确选择了输出颜色深度,但是使用生成的C代码颜色存在差异。

提示:选择正确的字节序,特别是SPI屏发送16位色时,要注意字节序。

 五、软件下载 

下载地址:点击>>单片机多功能调试助手

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐