(十七)DGUS屏显示控件问题

l 文本显示

问题1:

文本乱码

解决方法:

①字库命名冲突

a、数字和英文乱码:请检查0号字库是否命名冲突了,0号位置的一个字库 他的大小占用了12个空间 ,0-12之间不能有其他的字库占用,0号字库 他的大小可以随意调用 最大是64*128

b、录入的过程乱码:请重新刷新12输入法文件( 13是触控 14是显示 15-21是预留 22是初始值文件 )

c、汉字字库乱码:用户自定义字库从24开始,每个序号占用256k的大小 DWIN_SET里面除图片和config的文件都可以看做是是字库,用户自定义字库的命名是24-127之间的数字,如字库大小大于256KB,假设为257KB,那么将占用两个字库空间,假设我们的字库40.HZK 大小为257KB,那么占用了40,41 两个字库空间,下一个图标库不能写为41.HZK,必须由42 开始;(DZK和HZK的格式都支持)汉字字库通常可以用TS3字库软件生成,制作的时候:调节预览至饱满,汉字字库y点阵也就是高不能为奇数,宽高的点阵数即为xy大小点阵,建议命名的时候后面命名加以注释,便于识别如:66_GBK24_宋体.HZK,GBK比GB2312编码范围广些,占用体积大些。

②配置错误

a、编码方式选02GBK用于显示文本ASCII码。

b、X、Y点阵设置比如x选12,y选12,优先选用偶数。

c、汉字字库选择和生成的点阵宽高没有对应好。

问题2:

文本显示不全,后面的字没有显示出来。

解决方法:

①文本框拖得不够长,

②文本长度(软件的单位是字节)设置限制了。

DGUS II屏,文本显示控件只能显示第一个字符或汉字:文本的长度除了不能设置拖得过短,另外显示高度要足够大,否则会出现只显示第一个字符或汉字的情况。

问题3:

客户以前用MINI屏,现在用DGUSII屏低分屏替换,发现有些文本显示控件出现乱码。

解决方法:

MINI屏的文本显示,编码方式选择8bit编码可以正常显示数字字母,但是DGUS和DGUSII屏一样,要选择GBK或者GB2312才能正常显示字符。

问题4:

初始值如何显示?

解决方法:

迪文屏需要设定了特定的22字库文件上电加载到变量地址显示初始值,

第一步:需要设置里面勾选初始值由22文件加载。

DGUS II屏产品配置CFG文件08位置。

第二步:需要将22文件拷入屏里面。

DGUS的软件点击保存,生成配置文件之后,13、14、22文件会重新生成,13是触控配置文件,14是显示的配置文件,配置文件下载勾选13,14并没有把初始值22文件下进去,SD卡可以单独下入,或者串口下载choose File点击否,选22文件,改position为22,下发也是很快捷的。

问题5

GBK录入控件上传的地址是55FF,但是如果单片机要控制它的显示内容,55FF的话显示就会漏两个字节?

解决方法:

GBK录入控件勾选了输入状态返回,才会导致控件位置多出俩个字节,取消掉就可以

l 数据变量

问题1:

数据变量的左对齐是什么意义,为什么我的数据变量不能对其居中。

解决方法:

如果是左对齐就是:

0

10

100

如果是右对齐就是:

0

10

100

所以数据变量的对其方式是:数据从个位变成十位的一个渐变方式,不是往用户的界面拖一个数据变量控件的的框 ,数据显示就能跑到框中间了,数据变量控件坐标只认定左上角坐标的框的位置,与大小没有关系。

问题2:

数字和英文显示,比如数据变量显示05,而不是5,前面需要补齐一个0。

解决方法:

a、方法一:数据变量本身没有这个功能,用文本显示控件ASCII码代替

b、方法二:用艺术字变量选择右对齐(右对齐的意义参考问题1),左边添加一个图标变量控件地址和艺术字变量设置一样,下限上限分别对应0-10,其中0-9的时候都指向图标0的小图片,也就是做9个小图片内容写0的生成的ICO图标文件,当地址值为10的时候图标控件地址指向不显示的10空图标,那么就可以补齐0了。这种方法的优势在于不需要多发其他的指令代码,用户繁琐的地方也只是需要做0-9的图标显示艺术字。

C、现在的T5L新增功能可以补0

问题3:

数据变量控件怎么显示小数?

解决方法:

DGUS屏的数据变量是采用定点小数格式,也就是小数点的位置先设置好,发送的指令实际还是16进制的整数,变量地址0001,控件数据变量显示,整数类型,设置2位整数 1位小数,发送指令5A A5 05 82 0001 007D显示12.5。

T5L系列支持浮点数

问题4:

数据变量控件怎么显示负数小数?

解决方法:

变量地址0001,控件数据变量显示,整数类型,设置2位整数 1位小数,发送指令5A A5 05 82 0001 FF83显示-12.5,FF83是-125的16进制码。显示负整数则不需要设置小数位就行。

问题5:

数据变量上电不显示0实现方法?

解决方法:

①改用文本ASCII显示。

②图标遮盖法:对于整数类型的变量的数据变量显示,可以做一个图标变量地址和数据变量一样,图标控件置前显示,可以盖住底下的数据变量控件,下限0显示图标X,X图标是和底图一样的一个小块区域图标,上限65535指向的一个空白处图标不显示。

③基本图形置前显示,用一个当前页面区域粘贴盖住。

④利用切换页面组合方法,如果数据变量很少,当地址数据为0的情况,切换到没有放置数据显示的界面。也就是说底图都一样,只是没有放置显示控件,就不会有初始0挂在上面了。

⑤利用描述指针隐藏、更改颜色和底图一致、改变位置,请参考文档描述指针的用法。

问题6:

数据变量的单位怎么显示摄氏度符号℃?

解决方法:

①0号字库里面没有包含温度的摄氏度符号,如果实在是想用数据录入的控件的单位去显示,那么只能是是修改0号字库里面的数据把某个不常用的ASCII字符修改为摄氏度的符号,设计到各个点阵,工作量比较大。

②把单位直接做在底图,或者用图标贴。

问题7:

数据变量的单位怎么能用指令修改?

解决方法:

①通过描述指针是可以修改要显示的单位的。

②用图标在旁边贴一个,修改图标的地址调用不同的单位图标。

问题7:

数据变量显示的字体有毛边,怎么去掉?

解决方法:

点阵字体的毛边无法去掉的,迪文有个版本的加粗的0号字库是毛边现象会少点,但是字体比较粗。解决方法可以参考如下:

①如果是数据变量显示,用艺术字变量图标显示。

②选用数码管类型的字体制作字库,因为数码管字体本身是直线型的,比常规的宋体格式的数字有笔画弧度的地方会少很多,看上去就不显得有过于明显的毛刺。

③DGUS II全系列产品新增“DGUS II文本显示”功能,完美解决点阵字库显示的锯齿难题。该功能在字库文件上做了重要升级,使字符边缘处理更加细腻平滑。字库用“DGUS II文本显示功能专用灰度字库生成软件”制作后,用“DGUS II文本显示”配置显示。效果对比如下.

l RTC

问题1:

RTC时间怎么只显示年月日?

解决方法:

RTC显示,在日期设置格式栏 Y-M-D H:Q:S W修改为Y-M-D ,这样就是显示年月日。

问题2:

DGUS屏的RTC录入修改退格键无效。

解决方法:

1、是的,k600+没有退格的功能,建议用户在键盘上面不要做那个功能。

2、T5/T5L系列的RTC不是寄存器,写009c地址,具体看开发指南。

问题3:

DGUS屏的RTC录入能否单独修改年。

解决方法:

如果单独修改需要用数据变量录入,建议分为高低字节,可以用迪文OS或者单片机发指令,对时间进行改写,修改RTC时间的指令不要忘记是0x1F寄存器写入0x5A进行改写

对于DGUSII的屏修改RTC时间则方便很多:

0x9C DGUSII屏RTC时间: 5A A5 0B 82 009C 5A A5 12 06 1B 15 15 15 (18年6月27号21时21分21秒,16进制数据) 读RTC:5A A5 04 83 0010 04

0x9C DGUSII屏RTC录入: RTC改写占009C、009D、009E、009F共4个地址。009C写5AA5启动RTC设置,009D高低字节对应年月,009E高低字节对应日时,009E高低字节对应分秒。

①先做一个按键值返回,地址设置009C,键值设置5AA5。

②再做一个数据变量录入,地址009D,变量类型设置变量指针高字节,做一个数量变量显示,地址009D,变量类型设置VP高字节;高字节改变年。

③然后再做一个数据变量录入,地址009D,变量类型设置变量指针低字节,做一个数量变量显示,地址009D,变量类型VP低字节;低字节改变月。后面日时分秒和年月一样去做,一共6个录入6个显示控键。 做完后点击最开始的009C按键值即可改变时间。

问题4:

DGUS屏的RTC录入点击后重启?

解决方法:

键盘设置的显示区域超过了键盘的范围。

问题5:

DGUS屏的RTC显示怎么修改字体大小?

解决方法:

修改x方向点阵数即可。

问题6:

DGUS屏的RTC修改后能上传吗?

解决方法:

依赖RTC控件本身是无法将数据上传(控件的上传勾选实质是无效的),可以单独做一个RTC时间修改的页面,录入修改完RTC时间后,旁边做一个按键返回,按键返回按下了,告诉单片机,单片机再发一个81指令读时间。

或者利用DGUSII的OS处理,做按键返回判断也可以,也可以写法判断时间的变化超过了2秒就说明时间修改了,用OS发送时间到串口。

l 基本图形显示

问题1:

为什么对着地址发了一个剪切图形,我再对着地址剪切的时候第一个就消失了?

解决方法:

例如基本图形地址设置0x1001,第二个几基本图形地址设置0x1002。地址就是内存,迪文的82指令写的地址都是起始地址,延续写了多少字,后面的一个控件就应该不要占用之前的地址。对于基本图形控件,是底层调用基本图形控件时根据用户发的绘图指令进行判断,所以地址间隔、图形数量是需要将地址和数据分配规划清晰,对于多个图形剪切,可以一条指令发送剪切指令的多个数据包个数用于多个图片剪切,也可以做多个基本图形的框,分多条指令不同地址剪切。

问题2:

可以同一个基本图形控件操作不同的指令吗。如画了一个矩形和一个圆。

解决方法:

不可以这样操作,如果是要画不同类型的指令控件,可以叠加多个基本图形地址用于显示。

l 曲线显示

问题1:

曲线怎么加粗?

解决方法:

需要用其他的通道,发送指令的时候取值坐标的大小值相差一个像素点的刻度。但是对于弯曲的曲线,可能会像素点的间隙不是很平滑。

问题2:

曲线怎么保存?

解决方法:

DGUS屏的曲线控件是用84指令直接对着通道写值,如果是要将数据保存起来,需要经过82指令将数据写到变量地址,在用80指令写到数据库,从数据库读取操作后,再把历史数据用84指令发到另外的显示通道进行处理。

问题3:

曲线如何设置?

解决方法:

图解如下。

曲线通道0 1 2 3 4 5 6 7对应指令中的 01 02 04 08 10 20 40 80

l 图标变量显示

问题1:

为什么我的图标过滤不掉背景色?

解决方法:

过滤背景色原理是选取小图片左上角第一个像素点,与之完全一样的颜色都会被过滤掉,

也就是说如果发现自己的图片背景色过滤不掉,不妨用画图板放大到最大,一看像素点就知道,背景图肯定不是纯净的。

问题2:

怎么实现图标能循环点击一个按键切换?

解决方法:

1、用增量调节的上下限和图标地址对应。

2、用按键返回切换页面组合,也就是点击了按键之后实质是界面切换了。推荐用方法1

问题3:

怎么简单实现图标多个按键分别点击,例如123三个图标对应ABC三个按键,每个按键点击了只会显示对应的一个图标?

解决方法:

1、例如设置图标控件地址三个都为0x1001,小图标123,三个按键地址都为0x1001,键值分别为123,每个图标的设置分别上限和下限和键值图片对应整齐就行。

1、用位变量图标设置

问题4:

怎么简单实现图标多个按键分别点击,例如1个图标对应ABC三个按键,每个按键点击了只会显示对应的图标1?

解决方法:

例如设置图标控件地址若干个都为0x1001 小图片1,按键返回多个 地址0x1001键值 1 2 3 4 5 6.....上限下限分别都写1 2 3 4 5 6.....但是选取的对应的图标指向都为1

问题5:

迪文屏如何做进度条?

解决方法:

方法一:比如0-100 做100个图标,下线0 ,上限100,用图标的办法解决,这种方法的缺点是图标的长宽大小DGUS1的图标区域范围不能超过255x255像素,(T5的DGUSII屏最大1023x1023支持图标)如果刻度需要精确,需要美工做很多图片。这里通常适合用做圆形的进度条。

方法二:图片动画显示,也就是说要利用图片切换的原理

方法三:是基本图形剪切图片,也就是把其他页面的进度条的依照坐标剪切过来。另外的就是矩形填充等。

指令:5A A5 +长度+ 82 0005 0004 0001 +左上角坐标+左下角坐标 + F800红色

用户如果不用os处理,串口发矩形填充指令也行

先取坐标:例如要实现0~100的范围值,更改右下角x/100就能随着变化,例如取x横坐标变化范围420-20=400,分成100等分,则变化量为4,每增减1值坐标的值增减4。

l 动画图标显示

问题1:

怎样控制动画图标的播放速度?

解决方法:

DGUS屏只能做重复的帧数来控制动画图标的快慢,每个图标进行播放的速度是固定的DGUS屏周期,例如200ms、120ms、80ms每帧。

DGUS II屏的动画图标控件则是可以设置播放的时间的。

问题2:

动画图标只能显示出来1个,用的同一个地址?

解决方法:

动画图标不能和图标变量一样都用一个地址来同步进行,动画图标的变量地址的第二个地址要预留,相当于辅助动画播放的一个地址,也就是说动画图标变量占用2个变量地址。例如1001 1003 1004这样地址排列,如果用同一个地址,只会显示出来一个。

问题3:

动画图标怎么发指令改变停止状态的图片?

解决方法:

可以用描述指针+06H地址Icon_Stop,指令举例:5A A5 05 82 5006 0002停止图标2号,这个图标的序号可以取该基地址ICO图标的所有的小图片图标序号范围。

例如下图这个框左边的那一列是14文件里面的编译后地址,比如0x5A01代表底层对这个控件的识别代码,用户只需要了解,中间红框的那一排描述指针是可以访问到修改的地址。

动画图标显示的描述指针设置5000,参考上表红色框内可以看做偏移地址。

控制停止状态地址就是5006,对着5006地址发送图标的序号,就可以实现更改了停止图标的显示了。

l 位变量图标显示

注意事项:

1、移动模式一般不需要用,需要明白他的显示模式有8个,参考开发指南的表格,里面有各种组合的,例如某个位为1的时候是显示图标、不显示、显示动画,所以组合就有8种,可以通过下图的位控制设置分别做不同的单个位的控件进行显示。

如果下图都全部勾选,是需要用移动模式,设置固定的像素点进行自行排列。可以分成多个勾选选的控件进行自由排列。

1、额外注意辅助地址的定义,辅助地址一般占用2个,单片机指令不参与范围,是屏上面辅助显示用的,当设置的每个位控件用到动画的,辅助地址不能重复使用。如果没有用动画模式,可以统一设置为同样的辅助地址。

2、为变量图标有7个模式,对应分别当地址的某个位写入0或者1的状态,

ICON0S是指某个为写0的开始的图标,

ICON1S是指某个为写1的开始的图标,

ICON0E是指某个为写0的结束的图标,只有动画模式才会用0E的选择,

ICON1E是指某个为写1的结束的图标,只有动画模式才会用1E的选择,

l 图片动画显示

问题1:

怎么做开机动画?

解决方法:

用图片动画控件,例如在首页面00.bmp放置图片动画控件,设置起始图片0,终止图片10,开机自动实现00-10.bmp图片的动画,不需要任何单片机发指令,屏自动就实现。注意中间的图片序号不能中断,一定要连续。

对于已经排版好的图片,可以这样修改:00.bmp放置图片动画控件,设置起始图片10,终止图片20,那么20图片就是主页面了,01-09图片这是非图片动画用的其他的界面图片,这样处理只需要更改0页面为动画图片界面。

对于DGUSII屏,则可以在CFG文件里设置最开始的起始显示图片。

l 文本滚动控件

问题1:

文本滚动设置初始值,为什么上电后,显示不出来呢?

解决方法:

1、设置系统配置配置勾选初始值配置这个是前提。

2、文本框不要做很长,也就是框要比文字短。

3、滚屏间距要设置。

问题2:

文本显示发指令不正常,显示不全?

解决方法:

发指令变量地址要+3了再发。

l 二维码

问题1:

竖屏使用状态下的二维码控件怎么都调整不到合适的位置?

解决方法:

首先找到二维码在竖屏中软件上面左上角的点显示的起始坐标例如(157,463),然后修改下图的把二维码控件属性框右边的坐标X,Y调换为(463,157)即可。

问题2:

二维码显示不出来、乱码,不显示?

解决方法:

①先用正确的指令测试:发指令显示举例:

0x1000地址演示

发指令显示举例:需要发送ASCII码或者汉字内码,13个汉字以上才能被扫出来

5A A5 23 82 1000 B1B1 BEA9 B5CF CEC4 BFC6 BCBC D3D0 CFDE B9AB CBBE A3AC BBB6 D3AD B9E2 C1D9 A3A1

北京迪文科技有限公司,欢迎光临

发送指令,显示网址http://www.dwin.com.cn/能用微信扫描并打开网站

5aa5 1a 82 1000 68 74 74 70 3A 2F 2F 77 77 77 2E 64 77 69 6E 2E 63 6F 6D 2E 63 6E 2F

②如果指令也没有显示出来,再尝试更新12拼音输入法bin文件,或许是之前这个文件被其他的文件覆盖了或者格式化过屏。如果是DGUS屏检查下内核版本是不是太早了不支持这个功能(DGUS_V69版本以上内核文件支持)。

问题3:

二维码抖动跳动?

解决方法:

类似于文本的抖动,可能是屏本身flash原因,需要将屏格式化后再下载,有必要升级下内核程序,如果还是抖动,检查数据通信是否本身发送就有细微的变化导致。

问题4:

二维码希望能显示大一些?

解决方法:

DGUS屏有专用的二维码变大的内核。支持最大像素点最大到15*15的,可以让整个8寸屏就是1个二维码

Last updated

Was this helpful?