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


通过查看迪文给出的手册得知此款屏幕采用的迪文自研的T5L0芯片,但不知为何手上这款虽然型号相同,但在程序更新时显示的则是T5L1,与手册标注并不相同。
但在开发过程中选择T5L0或是T5L1没有区别,也可能是没有达到等级的分水岭。
其次:如手册所说,T5L是单芯双核,指的是芯片内部是两个单独的8051核心,分别是GUI核和OS核,两个核心对应的功能不同,开发方式也截然不同:
- GUI核运行迪文自己的DGUS Ⅱ系统,使用迪文推出的
<DWIN DGUS Ⅱ>上位机软件进行开发; - OS核可以由用户自己开发功能, 或使用迪文提供的基本功能示例。
OS核开发有两种开发方式可选:一是标准C代码,二是汇编指令开发)
可以采用KEIL(KEIL开发需要安装迪文提供的驱动包
< KEIL AGDI T5 >),或迪文推出的< DWIN C Complier>进行开发;
从需求来看,需要做的事情可以分为两个部分:
一是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文件功能。
但注意串口下载工具1不能下载OS核(GUI核的另一个核)程序/CFG文件,这类文件均能使用SD卡进行离线更新。SD卡下载需要对卡进行特殊处理且下载时具有特定的命名规则,这里建议最好是按他这个格式要求格式化一次,后续可以使用Windows的快速格式化功能,直接使用快速格式化有可能屏幕是无法正常读取的。

转载声明
作者:
亿佰特物联网应用
原文链接:
「干货」迪文串口屏ModBus开发流程

浙公网安备 33010602011771号