迪文屏幕的学习和开发

一、前言

  最近需要做一个关于迪文屏幕的项目,通过这几天的学习,对其开发方法有了大致的了解,但是涉及到 OS 部分还没有完成,现在即将离开,因此项目暂时中止,以后有机会再继续了解,为了以后自己再学习更方便一些,因此现在做了这个笔记,同时也分享一下自己学习的经验,让更多人很好的入门。
  这里吐槽一下迪文屏的资料和数据手册,特别碎片化,完全没有系统,导致入门特别麻烦,也很浪费时间,我这里打算整理一下我自己的入门经验,希望帮助大家可以很快的入门,进入项目开发环节。很多资料都需要自己去找客服要,如果没有常和客服沟通,自己摸索开发会浪费很多时间,这里就是DWIN软件部分不人性化的地方。
  下面所说的所有软件(除了PS,自己找资源下载安装,重点不在这里),都可以在我发的百度云盘链接里找到。这是云盘链接,永久有效:
链接:https://pan.baidu.com/s/1Dyc9fRZB9yG_z8OoPVuTrQ 提取码:g9lj
官网学习资料: http://www.dwin.com.cn/home/Index/download
官网软件下载: http://www.dwin.com.cn/home/Index/download?cate_id=4
   如果还有什么问题一定记住和客服沟通,可以节省你很多时间。 记住一定和客服沟通。

二、环境搭建及其项目开发准备

(1)、硬件部分

  我先以我这里的屏幕作为参考,我买的屏幕型号是: DMT12800K070_A2WTC 医疗级电容屏幕,买的时候一定自己上官网查看数据手册,查看供电电压等相关参数(这里客服为了省事,不会给你关于你这款屏幕的参数介绍,需要自己去找),就以我这款屏幕,它的供电电压范围是 7 - 36 V(额定电压为12V,额定电流为250mA),但是客服给的资料是其他型号的屏幕的(5 V 供电的,我接5V电压,我以为是屏幕出问题了,不会亮),也没给出接的电压范围是多少,后来我自己去官网查了以后,再问了客服客服才告诉我。
  这是官网给出的各个屏幕的参数表: http://www.dwin.com.cn/home/Index/get_screen_list?id=39 这里以我的屏幕作为例子:

  还有他这里会提供几种类型的连接线路,是实现屏幕和电脑通信,还有给屏幕供电的作用。只要有 USB转232接线,或者USB转TTL模块(CH340),都可以实现连接。**注意:**我这里用了屏幕的两个串口,一个是串口2,一个是串口4,供电为9V,300mA。因为连接相对简单,只需要注意供电电压就行,我这里直接给出硬件连接图:

  电路接好后,屏幕就会直接亮起来,然后显示出厂家下载进去的Demo历程,我的是像这样的:

  这样硬件部分就完成了,注意还有一点,迪文屏幕开发是基于内存卡开发的,需要准备的内存卡存储范围在2G - 16G之间(32G内存卡不好使,这里一定注意。)下面软件部分会有详细讲解。

(2)、软件部分

  DWIN屏幕开发需要的环境是这两个,一个是 DGUS Tool V7.3 以上的软件,这个是进行GUI进行设计的;如果要进行OS,进行二次开发需要准备 OSBuild3.0 以上的软件(软件版本最好是最新的,之前的版本也可以,这个是对于汇编编程的),或者 DWIN C Compiler 1.1.0以上的软件(软件版本最好是最新的,之前的版本也可以,这个是对于C语言编程的)。还有一个素材加工软件PS,这个一般需要根据的屏幕来进行素材加工。一共三个软件,DGUS Tool ,OS Build, PS。缺一个你的项目都无法进行下去。
  接下来我将从素材设计,到新建一个工程,到下载到屏幕中实现功能,到进行二次开发(二次开发未完成,有思路),逐步介绍。我这里做的项目是实现屏幕和经颅超声刺激信号发生器通信。

a.PS 设计素材

  我这里需要设计一个这样的界面,ps教学就自己去学习了,ps 功底越好,屏幕设计的就越精美,我就比较菜了,就自己弄了一个可以看的界面,也算实现功能吧~,如下所示:

  就这样的一个主界面还有一些素材,其中里面背景,还有图标啥的都可以这里用ps弄,我这里只是为了暂时完成任务,我没有必要做的太精美,这边的老师临时安排的任务,我后天就离开这里回去我们那边了,给我的时间又很短,我就弄了几天,所以暂时交差就ok啦,不过帮助暂时入门还是很有用的。继续回到正题,这是另外一些素材:

  分别是键盘,串口编号,波形状况,波特率,波形极性。通过这几样素材,就可以做出一个GUI界面,是不是很方便,虽然迪文屏软件设计方面很坑,但是入门了对于设计界面还是特别省时间的。下面是重点,我的屏幕分辨率是1280*800的,所以PS的图像大小配置也需要做相应的的调整,如下:

  通过调节图像高度,宽度,分辨率,让图像的尺寸为自己屏幕的分辨率。我这里的屏幕分辨率为1280*800,所以设置的也是接近这个数值。重要的一点所有图片的保存格式必须为BMP图像格式,24位深度图像,不然屏幕识别不了。


  然后以这样的格式命名(以00,01,02…这样的形式,后面再接图像的名字),保存在DWIN_SET的目录下。DWIN_SET建立好工程就会出现,这里在下面建立工程部分讲述。 命名方式如下:

  这里只需要注意图片命名方式即可,其他文件下面会有讲解。

b.建立工程

  DEWIN的GUI设计的软件为:DGUS Tool 。我这里问客服要到的为DGUS_V7381版本,这款软件和我们使用的软件不太一样,这个不需要安装,它是以一个文件包的形式存在,直接打开就可以,像这样的:

  直接打开就可以使用,接下来说怎么建立一个工程。点新建工程,然后会有下面这个界面,让你选择屏幕尺寸,如果里面的选项没有你的屏幕尺寸,你可以在上面这个文件夹里面进入 Config,然后再点 Terminal,进行修改成自己的屏幕尺寸。

  修改尺寸的文件如下,这样就修改好了,就建立好了自己的工程:

c.设计GUI

  生成工程以后,会有一个DWIN_SET的文件,你需要在这个文件里面添加有你用PS制作好的BMP格式的图片,其中图像以数字为开头命名,例如0,1,2…,数字后面跟着图片名字;设计好以后还需要生成13触控配置文件,14变量配置文件,22_Config,如果有音乐,字库还有配置相关文件,这个可以看迪文给的资料。设计GUI的过程我基本看迪文视频学习的,这里按照视频学习即可,但是难免还有一些不充分的地方,没有说怎么下载工程,没有说素材怎么得到,而且迪文也基本没有提供什么素材。这里举点例子,主要自己看视频学习 ,这是GUI设计的主要视频, 选择第五页的 视频屏开发示例2018-11-20 看一下就行:http://www.dwin.com.cn/home/Index/download?cate_id=5
  比如,我需要点一下一个菜单部分,然后弹出键盘,输入数字以后显示在主界面上。我需要这样做,我先点显示控件,点数据变量显示,然后用鼠标在想要显示的范围内画一个框(背景为蓝色),然后对参数进行配置,如图所示:

  这里配置主要是变量地址,因为考虑到二次开发需要用到OS,所以这里要求用户取得变量是从1000H - FFFFH,我这里地址取1054H,注意里面这些都是用16进制来表示,结尾为H,其他参数看自己项目要求调节。
  然后点触控控件,再点变量数据录入,然后在蓝色的框那里划一个一样大小的框(注意,触控配置的是黄色的框),然后地址和显示配置的地址一样,配置如下:

  因为数据输入需要选择键盘,所以接下来这样配置,先点键盘设置,选择键盘所在的页面,我这里是第一页,如下:

  接着框出键盘的位置,然后点显示位置的设置(这个是显示键盘位置的),把键盘放在你首页的哪一个位置,由自己选择,注意的是,输入显示方式为直接显示,键盘位置为其他页面,最后回到上面的那个 显示位置部分(这个是显示输入数字的中间过程),点设置,然后选择显示输入数字的中间过程的位置。接下来就设置完成了,但是还需要对键盘进行设置,进行触控配置,选择键盘页面,如下:

  对每一个按照需要配置,以1按键作为例子,选择触控控件,再选择基本触控,然后在键值那里输入 0x0031H,DWIN的处理器会明白你输入的是数字1,其他也一样,按照下面提示输入就行。这样一个就设置好了,其余的可以直接复制粘贴,改变一下变量地址就行。其他控件部分看视频学习,不一一讲解,这里不是本笔记的重点。 在GUI部分设计完成后,就涉及到下载工程的问题,这里是重点。

d.工程的下载

  迪文工程的下载要求用SD卡进行下载,并且SD卡要格式化为FAT32的格式(注意:32G的内存卡不可以用迪文的指令格式化成功),其中格式化过程为:

  一定记住这段话,不按照这样的要求是下载不了文件的。
  然后把自己设计好的工程,先点保存,再点生成,最后点导出,这样就生成了一个完整的迪文文件包。其中界面如下:

  最后生成的文件然后移入按照标准格式化的SD卡中,注意,DWIN_SET一定在根目录下,移入SD的文件如下:

  最后,在开机状态下插入SD卡,下载完成后拔出SD卡,拔出电源线再插上,就可以实现下载并且运行成功。
  
  
  

要点

  会出现一种情况,可能把SD里面的文件下载进去会导致触控不反应,没有作用。所以需要这样做。 先下载一个 UltraEdit-32软件,软件在我发的云盘资料里有,自己找了安装下载。然后在我的云盘文件里找到这个,如图:

  按照文件提示找到这个文件,找到自己屏幕适配的CFG文件,然后用 UltraEdit-32软件打开,如图,改成这个样子:

   注意:迪文客服给的资料是有三行的,把后面两行删除掉,然后吧第一行的04-07列改为00,其他不变化,就成为上图我改好的样子。注意,如果04-07列不为0会导致触控不灵,具体可以看云盘文件里面的txt文件。 然后把这个CFG文件与工程一起下进去,就下载一次就行,然后以后下载就不需要放入CFG文件了,然后触控就灵了。

三、效果验证

   初始界面:

   输入键盘显示:

   选择串口:

   选择波特率:

   选择极性:

   选择波形状况:

   然后各个菜单弹出选择以后,会有相应的键值返回到地址里,只要我在OS里面读取到键值,就可以知道用户选择哪一个选项,然后在连续发送,单次发送,停止,读取参数那里,相当于一个触控按键,只要我按了,就有返回值,我在OS中读取,就可以配置相应的参数。这样,GUI界面就基本完成,并且满足要求。

四、OS系统的二次开发(未完成,有思路)

   现在GUI界面做好了,各个地址和键值如下:

   有点乱,只是一个草稿,将就看一下吧~。我选择的变量地址是从1000H开始的,因为0000H-0FFFH是迪文自己的地址,具体的可以看看他们的数据手册。我这里的任务不算太难,是要实现,通过读取各个变量地址的键值,然后转化为16进制,加上匹配经颅超声刺激信号发生器通讯的帧头帧尾,按照通讯的格式把数据顺序排列,之后一起发出去。然后经颅超声刺激信号接收到信号,就可以按照要求产生相应的信号了。
   现在继续介绍一下DWIN屏幕的OS开发环境。你可以选择用汇编语言进行编写,它的开发平台是迪文自己的软件:OSBuild3.0.2.6;也可以选择用C语言编写,他们自己的开发平台是:DWIN C Compiler 1.1.0.7。这是我找客服要到的两个相对最新的软件了。因为之前用C语言进行过STM32的开发,有过一些经验,所以选择用C语言进行编写。
   这里使用C语言需要注意,迪文的编译器不用引入头文件,他们编译器自身就导入了一般C语言需要的库,还有迪文自己的库:1Lab,2Lab注意,如果使用C语言编程,需要把这两个库用SD卡下载到屏幕中,之后可以就可以直接用串口2下载程序就可以了。
  我这里没能继续开发的原因是,一般调试我都习惯用串口打印出数据,我这里想要用的是串口4经颅超声刺激信号发生器 进行通信,但是我通过调用迪文库里面的读取变量地址的函数,但然后把键值通过串口4发送出去,很遗憾没有发送出去,一直都是接收到 16进制的 0000000000000,后来不知道怎么的,连000000000都接收不到了,如果串口不好使都不能继续下去。。。现在我明天就走了,所以很遗憾不能调试了,以后用迪文屏的时候继续学习吧。但是,我通过串口2****读取各个变量地址的键值都可以显示出来,所以我认为是我自身的问题,或许是我没有配置好吧,这是我的开始的代码(才开始的,就只有声明啥的,如果有大佬看到可以点播我下,谢谢~):

#define COM 4
#define BPS 115200
#define MODE 0int main()
{char SerialPort[4] = {0};char BandRate[4] = {0};char Voltage[4] = {0};char PulseFreq[8] = {0};char BaseWiveNum[8] = {0};char RepetitionTime[8] = {0};char PulseNum[8] = {0};char Polarity[8] = {0};char WaveSpecies[8] = {0};char X_Axis_Left[8] = {0};char X_Axis_Right[8] = {0};char y_Axis_Below[8] = {0};char y_Axis_Above[8] = {0};     com_config(COM,BPS,MODE);read_dgus_vp(0x1012,SerialPort,2);read_dgus_vp(0x1014,BandRate,2);read_dgus_vp(0x1050,Voltage,2);read_dgus_vp(0x1052,PulseFreq,2);read_dgus_vp(0x1054,BaseWiveNum,2);read_dgus_vp(0x1056,RepetitionTime,2);read_dgus_vp(0x1058,PuleeNum,2);read_dgus_vp(0x1016,Polarity,2);read_dgus_vp(0x1018,WaveSpecies,2);read_dgus_vp(0x1022,X_Axis_Left,2);read_dgus_vp(0x1024,X_Axis_Right,2);read_dgus_vp(0x1026,y_Axis_Below,2);read_dgus_vp(0x1028,y_Axis_Above,2);while(1){read_dgus_vp(0x1050,Voltage,2);send_data_com(0x1050,Voltage,2);}return 0;
}// *******************************************void Time0_IRQHandler(void)  //定时器0 函数体
{}
void Time1_IRQHandler(void) //定时器1 函数体
{}
void Time2_IRQHandler(void) //定时器2 函数体
{}

  我这里就只声明了这几个变量,还有想在while循环里时时检测触摸Voltage变量,其地址为1050H,对应的为电压峰峰值情况,然后通过串口4然后发送出来显示。其实,这个项目也不难,只要串口可以准确发送出来对应地址的键值。那么我只需要加上帧头,把数据按照顺序排列,再拼接帧尾,然后加上一个发送确定的Flag(标志),这样就可以实现发送通信。接收通信的话,再点击读取参数按键后,然后再按照仪器的通信格式提取出相应的数据信号,这样一个简单的项目就完成了。
  现在说一下,Compiler 1.1.0.7如何使用,这是它的界面:

  建立工程的方式和一般C语言编译器方式差不多,不过写程序这里不需要加入头文件,直接写就行,打开就可以直接用,还挺方便,注意在其他编译器里面编译不了。 下面说一下下载的过程,步骤如下:
  先点Set,再点Set Serial Port,然后弹出这个界面,选择串口号就行。

  然后在点Debug,再点Download Flash,然后在连接好串口的条件下,就可以实现下载进屏幕了。  注意, 如果想要通过串口2读取各个变量地址的键值,需要用汇编程序这个软件看,软件是OSBuild3.0.2.6。

五、总结

  这篇博文的目的有两个。第一是做一个自己的学习笔记,如果以后自己想继续学习这个好接续,效率会高一些。第二是帮助一些入门感觉困难的朋友快点入门,我这篇博文基本把我开发过程中遇到的所有问题都总结出来了,希望对你有帮助。其实迪文软件的缺陷就是入门相对费劲一些,因为他们给的资料特别碎片化,需要自己花大量时间总结,感觉不太人性化。但是入门以后就特别方便,真的挺好的。

六、云盘资料(永久有效)

再发一遍资料:
链接:https://pan.baidu.com/s/1Dyc9fRZB9yG_z8OoPVuTrQ 提取码:g9lj
(永久有效,找不到联系我)
官网学习资料: http://www.dwin.com.cn/home/Index/download
官网软件下载: http://www.dwin.com.cn/home/Index/download?cate_id=4
如果还有什么问题一定记住和客服沟通,可以节省你很多时间。 记住一定和客服沟通。

迪文屏幕的学习和开发相关推荐

  1. 迪文屏幕T5L平台学习笔记一:开发环境搭建注意事项

    前面一直用T5UID3平台的屏幕开发,但是吐槽下<DWIN C Compiler 1>编译器bug太多,项目能不能做好,全靠运气:售后说T5L平台支持keil开发,我感觉挺好,于是从新学习 ...

  2. 迪文屏幕T5L平台学习笔记七:RS485测试

    由于串口通信距离近,且容易受到干扰,最近改为RS485通信方案,迪文屏幕DMG10600K070_03WTC正好也支持RS485通信,把调试过程记录下. 1.首先看下数据手册: 串口5支持RS485通 ...

  3. 迪文屏幕T5UID3平台学习笔记四:串口使用和定时器使用

    我感觉迪文屏幕分两大类吧,指令屏和OS屏,指令屏幕只能通过UART指令交互和DWIN GUI交互: OS屏幕,则可以通过在屏幕上二次开发,来实现我们的功能,当然了,OS屏幕也支持UART指令和 DWI ...

  4. 迪文屏幕T5UID3平台学习笔记二:变量图标显示和按键返回值按钮学习

    需要实现一个功能:当点击某个按钮时候,要求能够改变按钮的字体和颜色,比如: 点击strat按钮后,显示stop,这样再点击就实现Stop逻辑,同时显示变成Start,也 就是说把Start和Stop按 ...

  5. 迪文屏幕动态曲线显示问题记录

    本人在使用迪文组态屏时发现一个问题.在需要动态曲线显示时,所有的配置都正确,就是显示的波形有乱码,不是规整的正弦波.使用的是DMG80480C070_03WTR,波特率19200.今年5月购买的屏幕就 ...

  6. 迪文屏幕T5L平台学习笔记五:C51使用UART2打印log

    上篇博客介绍了利用sprintf,实现数据转化,在文本框上显示字符串,这篇博客利用printf,实现串口打印log. 一.首先看UART2配置寄存器 这里我们选择模式1,选择SRELOH:L产生波特率 ...

  7. 迪文屏OS汇编代码开发-参数修改 保存 翻页(七)

    ; DWIN OS ;程序功能:上翻页,下翻页,参数修改,保存 ;软件环境: DWIN OS ASM Builder V1.5 ;硬件环境:DW K600+平台 ;变量 ;用户数据区地址从0x0600 ...

  8. 迪文串口屏幕DMG10600T101_01WTR实现图片切换并和串口通讯

    1.我用的迪文屏幕,型号为DMG10600T101_01WTR,分辨率为1024*600,基本参数是10寸的,12V供电的电阻触摸屏,带两个串口通讯. 产品背面有一个电平切换的电阻,如下图,如果是用于 ...

  9. 迪文串口屏幕制作(连载一)=====准备工作

    前言 利用QT编写串口和CAN的显示程序后,初步在电脑界面上显示单片机上传数据并绘图.实际装置中需要用屏幕显示实时数据,所以必须利用现有屏幕进行设计. 选择迪文屏幕原因: (1)价格便宜,在同等屏幕中 ...

  10. 迪文液晶屏开发经历篇(一):选型迪文液晶屏

    串口屏作为可组态方式二次开发的智能串口控制显示屏,大大节省了开发人员项目开发周期,市场上串口屏品牌众多,各有特色,除特殊场合情况下,可选择迪文液晶屏作为项目的人机接口外设是一个比较好的方案. 一.为什 ...

最新文章

  1. Nature:植物叶际微生物组稳态维持机制
  2. Java实现xml和json互转
  3. Python-基础知识-常用模块
  4. 写博客必备的复制黏贴
  5. qt windows通过usb获取手机电量_华为手机系统故障修复及系统升级
  6. boost::fusion::make_fused_procedure用法的测试程序
  7. 学习Python中用numpy与matplotlib遇到的一些数学函数与函数的绘图
  8. 左耳朵耗子:不灌鸡汤,说真的年龄渐长,技术人的发展之路该怎么走
  9. 微型计算机中被处理信息称为,2011海南省计算机等级考试试题 二级C试题考资料...
  10. 【CodeForces - 361D】Levko and Array (二分,dp)
  11. 读《JavaScript权威指南》笔记(三)--对象
  12. C++算法工程师需要具备开发能力
  13. 关于拉格朗日乘子法和KKT条件
  14. 如何在 Mac 上使用“备忘录”管理扫描文稿?
  15. python开发环境有哪些_python开发环境哪个好用?如何搭建?
  16. oracle触发器实例
  17. 精通有状态和无状态(Stateful vs Stateless)
  18. charles 抓包软件 安装、破解、使用
  19. 对联广告代码效果大全
  20. 易语言解决adb端口占用_Android ADB 端口占用问题解决方案

热门文章

  1. U盘快捷方程病毒 iexplore.vbs
  2. TEXMACS在ubuntu下的使用
  3. scikit-learn:回归分析—一元非线性回归
  4. Ubuntu桌面快捷方式
  5. 【笔记记录】如何写论文?论文的基本结构是什么。
  6. Tableau中国五城市六年PM2.5数据挖掘
  7. mysql网络封包读取_项目总结(四)--- 网络封包分析工具Charles
  8. html 中thead标签,HTML thead 标签
  9. 单片机课设中期报告_基于单片机的火灾自动报警系统 中期报告
  10. 立锜1.2V~5.5V稳压芯片RT9078-33GJ5