目标功能:能够更新指定大小的图片到屏幕上的指定位置。 目前迪文T5UID1(D3)的屏幕是支持区域图片(.JPEG格式)通过串口下载进行更新到指定的坐标位置,通过给系统变量接口0xA6(JPEG_Download)下发指令。   但目前T5UID2的产品不支持此功能。(D1、D3产品都有3页显存,有个专门的背景页所以能够支持此功能,而D2只有2页显存。) 
  为实现目标功能首先将目标素材(图片文件压缩成较小的.jpeg格式)用重命名的方法改成.bin格式文件(用UE软件打开可以预览图片的所有数据)。 
在将图片(.bin格式)文件通过sd卡下载到屏幕之前,要确保目标文件不会与其他字库,图标库文件产生冲突(实例中将目标文件重命名为“100_系统休眠.bin”)。 目标文件下载完成后,通过对0xAA(NandFlash_RW_CMD)系统变量接口下发指令,将目标文件读到Flash存储器中。 测试用例“100_系统休眠”为100x100,2.25KB大小的图片文件。 
指令如下: | | | | | | | | | | | | | | | - 读取到数据变量从8000开始的空间
- 读取的数据长度
- 未定义,写0000
|
通过0x83指令读对应的数据变量地址,可以查看目标文件是否已经读到对应的变量地址中。 发出指令之后,串口收到数据返回。 
读到串口返回的数据,说明目标文件(100_系统休眠.bin)已经成功地更新到目标数据变量空间,通过对JPEG_Download(0x6A)系统变量接口下发指令,将更新的目标文件显示在当前页面上。 最后效果如下图所示: 
补充: - 拓展来讲,NandFlash不仅仅只支持图片的更新,同样也可以用来更新字库,音乐,图标库等(以32Kbyes 块为基准)。
- 目前T5UID2的屏没有开放和D1一样的 JPEG的0x01下载模式,所以目前针对T5UID2通过串口更新指定大小,位置的图片(图标)到屏幕上显示的方法只能用0x02模式将图片存储在Flash再通基本图形显示空间,通过指令剪切对应大小的图片
到当前页面。 
其具体步骤概括如下: - 将目标显示的图片文件整合到和工程文件相同大小的图片上(例:目标图片大小为100X100,工程图片文件大小为800x600)。
- 在工程文件里添加一个基本图形显示空间。并更新到屏幕中。
- 将图片文件更新到屏内,将图片文件改为.Bin格式。将图片的数据分成每次发送250字节,用SSCOM32串口发指令,模拟数据下发。
- 通过A6指令的02模式将图片更新到Flash。
- 再通过基本图形显示控件的0x0006指令,将目标图片给剪切粘贴到目标位置。

- 如过不要求必须通过串口更新,解决方法可以更为简单:
- 将小于64KB的图片改成.bin格式,然后将图片数据复制到22文件较大的数据变量地址,通过sd卡更新到屏内。再通过基本图形的剪切与复制指令实现目标功能。
- 将所有的目标显示效果制作成图标库更新到屏内,同样是用到基本图形显示控件,0x0007指令。

- 预览的图片都保存到FLASH,再用基本图形剪切显示的话,会有预览写FLASH次数问题,只有6万次寿命。
- 图片文件传输速率问题,当波特率设置为115200时,传输20KB大小的图片文件,仅传输速度就要2s左右,还需加上屏幕解码显示的时间。
完整的Word格式文档51黑下载地址:
JEPG图片下载方法 .docx
(1.36 MB, 下载次数: 46)
|