日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

STM32移植Littlevgl(LVGL)V8.0.2使用文件系统+BMP解码显示外部FLASH中图片

發布時間:2024/3/26 windows 89 豆豆
生活随笔 收集整理的這篇文章主要介紹了 STM32移植Littlevgl(LVGL)V8.0.2使用文件系统+BMP解码显示外部FLASH中图片 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

說明:選擇BMP解碼圖片的方式,是因為此方式不需要占用太多的RAM

一、主要參數及版本

MCU:STM32F103ZET6

LCD:2.8寸ILI9341,使用FSMC驅動

SPI FLASH:W25Q64

FATFS:R0.11

STM32Cube:Version 6.3.0

LittleVGL:V8.0.2

GUI Guider:GUI-Guider-1.3.1-GA,此上位機使用的是LVGL V8.0.2

二、基礎說明

本文使用STM32 + MSC + FATFS + LVGL + 文件系統 + BMP直接解碼SPI FLASH中的圖片,顯示在LCD上。

USB MSC + FATFS使用STM32Cube直接生成,這里不做介紹,主要以LVGL文件系統的移植和BMP解碼移植為主要內容。

1、STM32Cube生成USB MSC和FATFS

?

2、移植LVGL到項目,并編譯正常,版本V8.0.2

GitHub - lvgl/lvgl at v8.0.2

3、上位機UI設計軟件采用NXP的GUI Guider

下載鏈接:

GUI Guider | NXP Semiconductors

三、添加文件系統

下載鏈接:

https://github.com/lvgl/lv_fs_if

1、將lv_fs_fatfs.c、lv_fs_if.c、lv_fs_if.h添加到項目

2、lv_conf.h修改

在lv_conf.h中添加:

/*File system interface*/ #define LV_USE_FS_IF 1 #if LV_USE_FS_IF #define LV_FS_IF_FATFS 'U' //可以自定義 #endif /*LV_USE_FS_IF*/

下面一步很重要,不添加圖片顯示不了,默認是1,改為0

#define LV_USE_USER_DATA 0

3、在main.c中添加初始化lv_fs_if_init()

?4、修改lv_fs_fatfs.c

修改fs_init()

這一步很重要,確少這一步會導致文件系統用不起來。

/*********************** ??STATIC FUNCTIONS**********************/FATFS fs; /* Work area (file system object) for logical drives */FRESULT res;//UINT br, bw; ??/* File R/W count */BYTE work[_MAX_SS]; /* Work area (larger is better for processing time) */DWORD fre_clust;/* Initialize your Storage device and File system. */static void fs_init(void){/* Initialize the SD card and FatFS itself.* Better to do it in your code to keep this library utouched for easy updating*/res = f_mount(&fs, "U", 1); ?//掛載文件系統到W25Q64if (res==FR_NO_FILESYSTEM) ?????????//如果是新芯片還沒有文件系統{f_mkfs("U", 0, sizeof(work));}}

四、添加BMP解碼

下載鏈接:

GitHub - lvgl/lv_lib_bmp: BMP decoder library for LVGL

?1、將lv_bmp.c、lv_bmp.h添加到項目

2、在main.c中添加初始化lv_bmp_init()

?3、在需要使用的時候添加 #include “lv_bmp.h”

五、圖片顯示

1、在虛擬U盤中添加圖片,注意LV_COLOR_DEPTH 16需要與BMP圖片一致

2、讀取圖片

lv_img_set_src(ui->home_language,"U:/image/image.bmp");

?注意:如果LCD上顯示”No Data”,修改lv_conf.h中#define LV_MEM_SIZE ???(16U * 1024U) ?????????/*[bytes]*/ 大小

總結

以上是生活随笔為你收集整理的STM32移植Littlevgl(LVGL)V8.0.2使用文件系统+BMP解码显示外部FLASH中图片的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。