1.效果及分析
下面是STM32F103VET6通过SDIO方式读取SD卡的bin文件(2进制)并通过FSMC显示到240*320尺寸的TFTLCD上的效果,对比上次写的采用TJPEG解码库解码JPG文件并显示的效果进行对比:
SD卡+FATFS+Tinyjpeg图片解码显示 (STM32F103VET6通过CubeMX快速建立工程)
可以看出来刷屏还是快了不少,因为我显示的是240x320尺寸的RGB565色彩图片,一张图总共是240x320x2=150KB大小,而STM32F103VET6的RAM只有64KB,所以我这里采用了每次读取240x20行数据的方式,这样仅需开辟一个9600bit(9KB)的stack内存分16次读取及显示就可以完成一张图片的完整显示,不过可以看出来一张图片的刷屏时间大概在0.5秒左右,还是肉眼可见的看见刷屏了,实测将SDIO的时钟分频减少,即提高时SDIO的通讯速率,可以明显看出刷屏速度变快,能证明刷屏的延迟并不是在MCU与LCD的通讯上,而是在MCU与SD的通讯上,这也是用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