当前位置: 首页 > wzjs >正文

最好科技上海网站建设快速优化seo软件推广方法

最好科技上海网站建设,快速优化seo软件推广方法,赌博网站怎么搭建,网站开发基本语言为什么要使用fatfs 如果将图片等资源编译进入代码,则代码存储空间的占用则会较大加载图像资源(如 JPG/PNG/BMP) (1) LVGL 可以从 SD 卡等存储中加载图片资源,而不是编译进固件中,节省内存。 (2) 使用 lv_img_set_src(…

为什么要使用fatfs

  1. 如果将图片等资源编译进入代码,则代码存储空间的占用则会较大
  2. 加载图像资源(如 JPG/PNG/BMP)
    (1) LVGL 可以从 SD 卡等存储中加载图片资源,而不是编译进固件中,节省内存。
    (2) 使用 lv_img_set_src() 时可以传入文件路径,如:lv_img_set_src(img, “S:/cat.jpg”);
  3. 读取字体文件:
    (1) 支持从外部文件系统加载 .bin 或 .lv_font_t 格式的字体,而不是将字体嵌入代码中。
  4. 主题/界面配置的动态读取:
    (1) 从配置文件中读取界面布局、颜色、参数等,便于 OTA 更新或热更新界面资源。
  5. 文件浏览器组件:
    (1) 使用 LVGL 的文件浏览器组件(如 file explorer demo)时需要读取目录、文件信息等。

partition table

partitions-16MiB.csv
在这里插入图片描述

生成fatfs的bin文件

CMakeLists.txt

set(image ../fatfs_image)if(CONFIG_EXAMPLE_FATFS_MODE_READ_ONLY)fatfs_create_rawflash_image(vfs ${image} FLASH_IN_PROJECT PRESERVE_TIME)
else()fatfs_create_spiflash_image(vfs ${image} FLASH_IN_PROJECT PRESERVE_TIME)
endif()

建立fatfs_image文件夹在这里插入图片描述

编译之后,就能够看到生成了fastfs的bin文件
在这里插入图片描述
vfs-flash_args则是包含烧录的参数

--flash_mode dio --flash_freq 80m --flash_size 16MB
0x3f0000 vfs.bin

初始化fatfs

err = esp_vfs_fat_spiflash_mount_ro(base_path, "vfs", &mount_config);
if (err != ESP_OK) {ESP_LOGE(TAG, "Failed to mount FATFS (%s)", esp_err_to_name(err));return;} else {ESP_LOGI(TAG, "FATFS mounted successfully");}

📌 参数解释
base_path: 挂载点路径,比如 “/spiflash”,挂载后文件路径是 /spiflash/xxx.txt。

“vfs”: 分区标签,必须是 partitions.csv 中定义的分区名。

&mount_config: esp_vfs_fat_mount_config_t 类型,配置文件系统挂载行为(例如是否格式化等)。

🧠 函数用途
这个函数的作用是:

✅ 将 SPI Flash 中的 FAT 文件系统挂载为只读

将提前烧录好数据文件(图片、字库、配置等)到 SPI Flash 的情况。

比如你将 .bin 字库或 .jpg 图片打包成 FAT 镜像写入 SPI Flash,然后用 LVGL+FatFS 动态加载。

LVGL 配置

在这里插入图片描述

配置fs_open

需要将路径,在前面加上fatfs文件系统挂载点的路径。

/*** Open a file* @param drv   pointer to a driver where this function belongs* @param path  path to the file beginning with the driver letter (e.g. S:/folder/file.txt)* @param mode  read: FS_MODE_RD, write: FS_MODE_WR, both: FS_MODE_RD | FS_MODE_WR* @return pointer to FIL struct or NULL in case of fail*/
static void * fs_open(lv_fs_drv_t * drv, const char * path, lv_fs_mode_t mode)
{LV_UNUSED(drv);uint8_t flags = 0;char full_path[256];if(mode == LV_FS_MODE_WR) flags = FA_WRITE | FA_OPEN_ALWAYS;else if(mode == LV_FS_MODE_RD) flags = FA_READ;else if(mode == (LV_FS_MODE_WR | LV_FS_MODE_RD)) flags = FA_READ | FA_WRITE | FA_OPEN_ALWAYS;FIL * f = lv_malloc(sizeof(FIL));if(f == NULL) return NULL;snprintf(full_path, sizeof(full_path), "/spiflash/%s", path);FRESULT res = f_open(f, full_path, flags);if(res == FR_OK) {return f;}else {lv_free(f);return NULL;}
}

使用

load_file_and_display("A:/hellolongname.txt", screen);
void load_file_and_display(const char *file_path, lv_obj_t *parent) {// 打开文件lv_fs_file_t file;if (lv_fs_open(&file, file_path, LV_FS_MODE_RD) != LV_FS_RES_OK) {printf("Failed to open file: %s\n", file_path);return;}
}

reference

fatfsgen

http://www.dtcms.com/wzjs/432144.html

相关文章:

  • 三网合一网站建设成人厨师短期培训班
  • 切图做网站过时了吗珠海网络推广公司
  • 网站源码生成百度导航最新版本免费下载
  • 番禺网站建设优化推广东莞网站制作推广公司
  • 网站开发维护花费百度站长收录
  • 北海做网站公司搜索关键词排名提升
  • 众v创业营网站开发最近新闻摘抄
  • 天津西青区疫情最新消息今天零基础seo入门教学
  • 国内做交互网站seo排名优化哪家好
  • 重庆网站建设要点平台如何做推广
  • wordpress 本地写文章seo外包如何
  • 福州企业做网站哪里可以学企业管理培训
  • 佛山市南海区疫情惠州百度seo在哪
  • 网站制作-杭州恢复原来的百度
  • 厦门电子商务网站建设开发做一个网站需要多少钱
  • 哪些网站做批发广告投放的方式有哪些
  • 网站关键词优化技巧多地优化完善疫情防控措施
  • 怎么开店seo优化实训总结
  • 英语培训学校网站建设多少钱品牌网络营销策划
  • 怎样网站seo新媒体seo指的是什么
  • 商丘网签查询企业关键词优化推荐
  • 佛山做网站建设杭州seo网
  • 昆明网站建设排名seo网站优化培训怎么做
  • 专业酒店设计网站建设图们网络推广
  • 网上怎么接单做网站免费网站模板
  • 网站前台后台网站优化外包
  • 建设专业网站价格seo 资料包怎么获得
  • 有什么好的网站查做外贸出口的企业网络营销策略分析案例
  • 青岛 两学一做 网站临沂seo推广外包
  • .net做的网站怎么样萝卜建站