代码改变世界

完整教程:SD卡通过读取bin文件替代读取图片格式文件来提高LCD显示速度

2025-10-07 19:01  tlnshuju  阅读(27)  评论(0)    收藏  举报

1.效果及分析

下面是STM32F103VET6利用SDIO方式读取SD卡的bin文件(2进制)并通过FSMC表现到240*320尺寸的TFTLCD上的效果,对比上次写的采用TJPEG解码库解码JPG文件并表明的效果进行对比:在这里插入图片描述

SD卡+FATFS+Tinyjpeg图片解码表现 (STM32F103VET6通过CubeMX快速建立工程)
用SD卡读取较多材料时的局限性。就是可以看出来刷屏还是快了不少,因为我显示的是240x320尺寸的RGB565色彩图片,一张图总共是240x320x2=150KB大小,而STM32F103VET6的RAM只有64KB,所以我这里采用了每次读取240x20行数据的方式,这样仅需开辟一个9600bit(9KB)的stack内存分16次读取及显示就可以完成一张图片的完整表现,不过许可看出来一张图片的刷屏时间大概在0.5秒左右,还是肉眼可见的看见刷屏了,实测将SDIO的时钟分频减少,即提高时SDIO的通讯速率,行明显看出刷屏速度变快,能证明刷屏的延迟并不是在MCU与LCD的通讯上,而是在MCU与SD的通讯上,这也
之前有试过STM32F103VET6采用nor flash的方式进行存储bin记录并进行读取显示,能够做到看不出刷屏的效果,TFTLCD驱动也是采用FSMC方式,读取和显示也是分多次进行完成的,也可以验证出nor flash在跟MCU的通讯上确实比SD卡速率快。

2.图片格式转bin格式

借助Image2TFT将各种格式的图片转换为16位或24位的bin资料:
在这里插入图片描述

3.程序提供

由于程序较简洁,这里直接给出c文件和h文件及调用方法即可:

sd_bin_picture.h

#
ifndef sd_bin_picture_H
#
define sd_bin_picture_H
#
include "main.h"
FRESULT ReadAndDisplayImage(
const