TFTLCD 开发记录 -- 5、QSPI Flash存储图片
由于要显示多张图片,所以将所有的图片数据保存在QSPI flash, 开发板上带一片32M的QSPI Flash,下面就来操作它,存取数据,打开QPSPI:

配置QSPI参数

根据原理图修改GPIO口设置


之后点击生成代码,回到IDE中,新建QSPI_flash.c和QSPI_flash.h两个文件, 然后,编写QSPI Flash代码也就是W25Q256的驱动,这部分内容比较多,就不展开详细描述,有问题可以对照W25Q256的手册查找解决办法,这里直接将完整代码贴出来:
QSPI_flash.c:
QSPI_flash.h
最后测试下QSPI FLASH 是否成功驱动,测试方法是读取W25Q256的芯片ID,看看是否正确。主函数中调用W25Q256的初始化,并读取ID,出口打印出来

测试效果是读到芯片ID为0xef18 ,证明W25Q256测试通过,成功驱动。

以上只是成功驱动了QSPI Flash,还需要将图片数据存入QSPI Flash中,这里使用一个简单的办法将图片数据写入Flash中,可以省掉Flash烧写的过程。
编写图片写入函数:
编写图片读取函数:
由于芯片内部空间有限,只能一次写入一张图片,故使用按键按钮下存入图片数据,的方式逐一存储图片。按键的配置很简单,对照原理图初始化配置即可。
按键扫描检测程序:
调用按键扫描程序,按键1按下时,存入图片,这里操作稍微繁琐点,有5张图,需要编译下载五次,每次存入对应的一张图片

图片寸完之后,将逐一读出图片数据,送到DMA2D显示出来即可,这样就可以实现五张图片循环显示效果,代码如下:
在主函数中调用这个测试接口函数即可
完整的工程代码开源,在https://www.bilibili.com/read/readlist/rl758628?spm_id_from=333.999.0.0视频下方简介可以找到