TouchGFX(二)_STM32CubeIDE烧写资源到外部Flsah

码字不容易,转载请注明出处!


在实际工程开发中,画面丰富的ui,通常一个界面就需要用到很多图片,刚开始使用一张两张图片的时候或许可以放在mcu的内部flash,但是图片多了,放在内部flash的做法就不现实了,下面将介绍如何解决这个问题,方法有很多,只有最适合自己的,没有说指定哪一个是最好。

在这里插入图片描述

首先从图片资源说起,现在用手机拍一张图片,大小就有好几M,如果这张图片分辨率适合自己的屏幕的话,当然可以直接导入到TouchGFX里面使用,但是这一张图片就占了巨大的空间,还得另外扩充外部的FLASH,这是非常不划算的,所以我们可以稍微牺牲一点图片质量,把图片处理一下。
在这里插入图片描述
打开百度搜索美图,点击进去打开网页版,打开一张本地图片(该图片来源一加手机7pro相册),然后可以根据自己屏幕需要调整分辨率,保持宽高比例可以避免图像变形,修改后点击保存与分享,选择PNG格式,点击保存图片,保存到本地
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以跟原图对比,原图是1.4M,调整后的是970K(没有修改分辨率)
在这里插入图片描述
接下来解决超出FLASH大小的问题
打开工程根目录下的链接文件(.ld),在MEMORY里面加入以下内容,然后拉到ld文件底部,按照下面图片添加定义,其中ExtFlashSection可以根据自己需要定义名称。ExtFlashSection里面包含的内容:第一行是图片的外部定义;第二行是字体的外部定义。整个的意思就是把代码中带有这个外部定义的变量放到SDRAM地址区域中,这个名称要跟第一张图片对应,可以根据自己需要改为QSPIFLASH,或者SPIFLASH
在这里插入图片描述
在这里插入图片描述
然后就可以编译通过,不会报错
在这里插入图片描述
点击小虫子进行烧写和仿真,这里有可能会报错,以为没有刚刚定义的区域的烧写算法
在这里插入图片描述
点击小虫子右边的箭头,选择调试配置,打开后按下图操作,在调试器选项中拉到底,勾选External Loader,点击Scan扫描烧写算法,然后就可以在列表中选择自己需要的算法,这个是官方的烧写算法,如果没有找到适合自己的,那么可能要自己编写,我这里也没有适合我的,我是直接烧录到SDRAM,所以直接选择一个地址跟我一样的,先烧进去,如果用的是QSPIFLASH和SPIFLASH,一样是在这个列表里面选择,选定后点击应用,然后关闭或立即调试
在这里插入图片描述
经过以上操作,就可以解决烧录到外部FLASH或者SDRAM的问题。
如果按照我的解决方法,那么就会产生新的问题,**板子断电重启后就没有画面了!**下一篇文章将介绍如何解决这个问题,点击关注和在看,可以第一时间收到推送哦!

码字不容易,转载请注明出处!

扫描二维码,关注公众号查看更多文章
在这里插入图片描述

  • 4
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值