「笔记分享」迪文串口屏基础GUI开发流程
一、前言
迪文的资料较为混乱,花费了大量的时间研究。

首先:迪文芯片分为T5和T5L系列,并不兼容,在T5L内同时分为T5L0\T5L1\T5L2,
但在官网最新的<迪文 T5L ASIC 应用开发指南.pdf>版本为V1.1,这一参考资料中,仅描述了T5L1以及T5L2系列,这个区别主要是屏幕显示分辨率和存储扇区以及单个文件大小的限制方面有区别。

通过查看迪文给出的手册得知此款屏幕采用的迪文自研的T5L0芯片,但不知为何手上这款虽然型号相同,但在程序更新时显示的则是T5L1,与手册标注并不相同。但在开发过程中选择T5L0或是T5L1没有区别,也可能是没有达到等级的分水岭。
其次:如手册所说,T5L是单芯双核,指的是芯片内部是两个单独的8051核心,分别是GUI核和OS核,
两个核心对应的功能不同,开发方式也截然不同,这点需要特别注意。
GUI核运行迪文自己的DGUS Ⅱ系统,使用迪文推出的<DWIN DGUS Ⅱ>上位机软件进行开发;
OS核可以由用户自己开发功能或使用迪文提供的基本功能示例,但遇见复杂情况还是无法满足需求,需要用户自己编写处理逻辑.
注意:
有两种开发方式可选:一是标准C代码,二是汇编指令开发,可以采用KEIL或迪文推出的< DWIN C Complier>进行8051内核OS代码的开发;
KEIL开发需要安装迪文提供的驱动包
< KEIL AGDI T5 >。
二、需求
从需求来看,需要做的事情可以分为两个部分,一是UI数据的显示,迪文的DGUS Ⅱ采用的方式是用事先设计好的图片做背景,所有的操作均以图片为基础进行布局、显示和触摸,这就需要提前设计好整个系统的UI原型和交互流程。二则是MODBUS数据交互,数据交互已经超出了GUI核的处理范围,所以需要进行OS核的代码编写,因为MODBUS已经是广泛的工业协议,所以迪文已经提前编译了各个串口的MODBUS协议栈程序了,用户需要替换对应的DWINOS程序以及按要求下载指令配置文件即可。
三、实施
1、UI数据显示
(1)素材准备
如上所说,整个系统流程是以图片为导向的,所以在设计系统前即应该画出设计原型,
这里选择的800*480分辨率的屏幕,所以在图片尺寸上也应设置相同尺寸;
但在图片的格式上迪文做了一些限制,需要24bit色深的bmp或jpg\jpeg格式,windows可以在图片上右击->属性->详细信息中看到图片的分辨率和大小以及色深,如果图片不满足要求的话下载进屏幕会导致屏幕出现黑屏或其他无法正常显示的情况。

当确定所有的图片格式后,需要将图片统一按0x[_xx]的序号进行命名,序号后的汉字不做要求,可有可无,这里为了方便对图片做区分,选择添加。

图片准备好后, DGUS Ⅱ不支持直接在文件系统中以图片格式(bmp/jpg)显示背景,需要将其转换为ICL文件格式。这里使用的DGUS Ⅱ软件自带的转换工具即可。

这里引出来在开发中遇见的一个大坑点,就是关于迪文DGUS Ⅱ文件系统索引
DGUS Ⅱ将系统flash分为多个扇区,每个扇区的大小是256K,扇区号从0开始,所有的需要存入屏幕flash的文件都需要用户手动来确定扇区大小,
其中0号为默认的系统字库,使用软件默认生成的大小为3011K,按256K一个扇区来算,0号字库占据12个扇区,
紧接着是:
- 系统配置的触摸文件13、
- 用于数据显示的数据文件14
- 以及系统配置文件22。
- 当13文件(系统配置的触摸文件)超过32K后无法使用B0指令关闭指定的触控控件,
- 并且22文件(系统配置文件)系统开机是默认不加载的,需要在CFG文件中指定开机加载22文件功能。

浙公网安备 33010602011771号