承接上期的“更新显示UI”帖子,这次尝试使用同样的方法更新开机**图样。我们知道在”SWM166-SPI-Y1.28C1素材及工程\01-素材“文件夹下有UI与**两个文件夹,两个文件夹下对应不同的bin与txt文件,使用”Synwit_IMG_Tool_V1.1“工具串口更新资源到norflash时,所填写的更新地址也是有所不同的。更新**文件下的bin文件时,文件传输地址为:0 K;更新UI文件下的bin文件时,文件传输地址为:10240 K。
根据原**文件夹下的图片集可知,开机的动态画面是由54张jpg图片按照一定顺序播放而产生的**开机画面。因此这里笔者在网上随意找了一张gif图片,源文件如下:
然后通过”剪映“工具,随意DIY一下,整成mp4文件,而后再转成gif文件。
将gif文件提取成多个jpg文件,并将图片的像素尺寸改成240*240,并按照原**文件夹下的文件名依次重命名各个jpg文件。然后打开”Synwit_IMG_Tool_V1.1“工具,进到提取后的图片所在目录下(笔者直接将原**文件夹的所有图片替换掉),生成bin文件。
接着将USB转串口调试工具与SWM166-SPI-Y1.28C1开发板正确连接,选择对应的串口号,波特率设置”921600“(工程源码中初始化波特率为921600),”打开串口“。文件传输地址为0 K,进入到刚才生成bin文件的路径,加载刚刚生成的bin文件。
这里可预览到bin文件的大小有5.51MB,这么大的文件通过串口更新到SWM166-SPI-Y1.28C1板上norflash需要多长的时间呢?从”Synwit_IMG_Tool_V1.1“工具中的log消息打印,可计算得出。
这里可以看出,以波特率”921600“的速率传输,5.51MB的文件大约需要13分钟,期间还有报”CRC error:7c6c Len:5“,也不知是什么原因。为了让更清楚地展示开机显示效果,这里在上次工程的基础上,对**显示稍加延时并多显示几次。
#include "SWM2X1.h"
#include "MYLIB.h"
int main(void)
{
SystemInit();
MyUartInit(921600);
spi_flash_init();
GC9A01_Init();
SPI_DMA_SendGet_Init();
Timer_Init();
KEY_Init();
Show_**();
Delay_Meau(800);
Show_**();
Delay_Meau(800);
Show_**();
Show_meau_First(Meau_BianPinJieDong);
while(1==1)
{
/*实时更新*/
DataDeal_485();
Key_Get_IO();
/*逻辑*/
Key_Deal();
/*菜单实时更新*/
Meau_FuZhuGongNeng_ChuJun_Doing_Loop();
/*获取触摸*/
//TP_Get();
}
}
给板上的norflash更新的**显示资源后,需要给板子重新上电,展示的效果见下方视频:
评测的最后,附上显示**图片资源,总结一下:官方提供的”SimplMPU“工程比较精简,对于屏的操作,大多为全屏或局部画图,调用的都是”LCD_ShowImg()“库函数,并没有类似OLED屏的字符显示,因而并没有用到字模生成工具,好在MCU刷图比较给力,因此操作起来比较炫酷,UI显示比较流畅。实际体验,该开发套件非常适用于滚筒洗衣机、空气炸锅、压力锅等产品的设计开发。后续如果支持字模导入,字符的显示,将有更宽广的应用市场。
**.zip
(761.36 KB)
|