一.前言
嵌入式开发过程中,需要用MCU去驱动屏幕并画图,可以将图片数据存储在代码区中,后期一并编译并导入到设备,如果图片比较小还好,但是大量的图片数据就会使得后期的开发和维护变的极为缓慢。
为此 我们可以通过提前将数据写入到Flash中,在后期的调用和维护都只需调用地址,便可完成图片的绘制,节省程序编译和导入的时间。
二.前期准备
一.确认空间大小
首先要确保MCU有无足够的空间存放图片bin文件,或者外挂存储设备来存放图片数据
16位彩色图片大小计算:图片宽度 * 高度* 2 / 1024 = 所占字节大小 K
若是32位则大小是16位彩色数据2倍 以此类推;
例: Flash大小8M,就可以存储 419 张 100*100大小的16位彩色图片
若是MCU内部Flash,一定要计算好代码区大小,防止图片导入后被代码区覆盖
二.安装以下软件
Image2Lcd (目前楼主用的4.0版本)
UBIN (嵌入式开发中的多BIN文件合并神器)
三.开始操作
一.Image2Lcd
首先将图片导入,按照自己的需求和方式进行更改,下面是我的默认配置
输出数据类型:一定选择二进制文件或者bin文件,二进制文件将后缀改成.bin即可
输出灰度:看个人需求 一般为16位彩色,屏幕驱动SPI和QSPI数据位都是拆分2份8位发送
字节顺序:看自己设备存储是大端字节序还是小端字节序 (勾选是大端)
其他选择按照自己需求来微调;
二.UBIN
1.点击浏览选中刚刚转换后的bin文件,再点击添加,直到所有文件导入完毕
2.点击浏览,在打开文件栏中输入合并后的文件名称,点击合并,软件会在目标文件路径下生成文件和TXT详情文本
3.将目标文件导入指定Flash地址,打开TXT文件,里面包含所有图片大小以及从零开始地址信息,每次访问只需要填写对应图片地址和相应文件大小即可画图完成
图片地址 = 基地址 + 框选地址
例:Flash写入地址是64000 则 图片2所在起始地址为 64000 + 1AE00 = 7EE00
四.下载链接
Image2Lcd下载:Image2Lcd图片取模软件-CSDN博客https://blog.csdn.net/fantastic_sky/article/details/110530389
让开源促进更好的编程环境,感谢上面大佬的付出