stm32基于TouchGFX的GUI开发(九):Touchgfx图片资源存储在外部Flash教程(SPI和QSPI方法一)

本文介绍了如何在STM32使用TouchGFX时将图片资源存储到外部Flash,包括移植工程模板、修改Keil配置和编写驱动文件的详细步骤。讲解了SPI Flash的配置,并提供了工程模板和相关资源链接。
摘要由CSDN通过智能技术生成

前言

使用Touchgfx时当做的应用比较复杂的时候,图片资源比较多比较大就需要将图片资源存储到外部Flash中,否则的话默认没有配置外部下载区域就是默认放在芯片内存,会提示内存不够。通过本文章的学习后可以轻松的实现图片资源存在外部Flash中。


硬件:STM32F429IGT6(正点原子阿波罗开发板) + W25Q256(32MB字节)

QSPI和STM32H743的方式将在后面文章介绍


接口:SPI。W25Q256 Flash芯片支持SPI和QSPI接口,但是F429不存在QSPI接口所以只能采用SPI方式。SPI比较QSPI加载图片的区别是,SPI在开机启动加载图片比较缓慢,而QSPI模式会加载的非常快。但是在开机后图片加载完成后,流畅度没有多大的区别。
本章介绍第一种方法:采用stldr下载算法的方式。此方法通过Keil调用ST utility来下载,适合批量生产时给生产线上采用。(另一种存储在外部Flash方法采用Keil自带的.FLM下载算法实现,适合在研发调试阶段直接用Keil下载,此方法将在下篇文章介绍)
最终完成后可以在utility中看到自己的算法,注意实际使用的时候可以不需要打开Utility即可下载。可以在Keil中设置好下载步骤后像平时调试一样下载也可以使用后面本人提供的自动下载的小工具。

在这里插入图片描述

提示:以下是本篇文章正文内容,下面案例可供参考

Touchgfx图片资源存储在外部Flash中系列教程(一):.stldr下载算法实现图片存储在外部Flash


一、准备工作

需要提前安装好以下两个软件:

一、STM32 ST-LINK Utility下载连接
https://www.st.com/en/development-tools/stsw-link004.html
注意:Utility采用默认安装路径,因为后面教程采用默认的路径。采用其他路径也可以,根据所在路径修改

二、MDK 管方下载连接
https://www2.keil.com/mdk5

二、移植工程模板

Utility外部Flash工程模板在其软件的安装目录下面,我们需要拷贝其中的几个文件出来使用:
在这里插入图片描述在这里插入图片描述

1、准备工程模板

为了节省大家的时间,这里已经给大家移植好了工程模板。
工程模板下载链接:
https://pan.baidu.com/s/1YcyUGEJ-pO43z91dyJVnRg
提取码:1pt1

如果是采用我提供的模板请直接跳到第2步。打算自己一步步移植请继续往下看。

强烈建议制作工程模板时不要用官方的模板来做,由于路径的问题,拷贝到别的地方会报一堆莫名的错误。咱们只是需要其模板工程下面的几个文件拷贝出来然后添加到你自己的寄存器或者Hal库工程里。这里建议采用寄存器工程,因为这样会引入较少的文件。由于采用的是正点原子的开发板,直接将其寄存器工程模板考出来,然后从Utility工程模板中拷贝出下面几个文件添加到你自己的工程。

在这里插入图片描述 另外需要注意的是Target.sct文件需要改变一下添加ABSOLUTE关键字,工程代码中一旦有全局变量就必须添加这个关键字,这里注意一下。
在这里插入图片描述

2、准备驱动文件

前提是你准备的驱动文件是已经验证过能够正确操作Flash的。

①将文件添加到工程,修改spi.c、usart.c、w25qxx.c 里面的引脚和时钟匹配你自己的板子对应的引脚
在这里插入图片描述②修改关键参数,匹配你自己的flash容量大小和类型
在这里插入图片描述
上图中个别参数采用宏定义如下,如果不是W25Q256记得修改
在这里插入图片描述

③设置分散文件
在MDK的Options for Target->Linker设置如下,添加分散文件Target.sct的路径
在这里插入图片描述④添加驱动函数

在这里插入图片描述
为了节省时间,这里没有实现CheckSum和Verify 两个函数。不需要校验只是下载就行了

#include "sys.h"
#include "usart.h"
#include "w25qxx.h"
#include "Dev_Inf.h"

#define DEBUG		1

int Init (void
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YZW0123

谢谢大家的支持,请关注我哦!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值