(十七)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?