Learning and development Devine screen

Original link: https://blog.csdn.net/qq_38169460/article/details/99704650

Learning and development Devine screen
I. Introduction
  recent study needs to do a project on the screen Devine, through these days, its development methods have a general understanding, but it comes to OS section is not yet complete, and now about to leave therefore temporarily suspended the project, we have the opportunity to continue to understand, in order to learn their future more convenient, so now do the notes, but also to share their learning experiences, so that more people good place to start.
  Here Tucao about Devine screen information and data sheets, particularly fragmented, there is no system, leading to entry particularly troublesome, but also a waste of time, I'm going to sort out here on my own introductory experience, we want to help you can quickly get started, development of links into the project. A lot of information needed to find their own customer service, if not often, and customer communication, develop their own way will waste a lot of time, it is not part of the software DWIN humane place here.
  Below said all of the software (except PS, download and install on your own resources, the focus is not here), can be found in my hair Baidu cloud disk link inside. This is the cloud disk link, permanent:
link: https: //pan.baidu.com/s/1Dyc9fRZB9yG_z8OoPVuTrQ extraction code: g9lj
official website learning materials: http://www.dwin.com.cn/home/Index/download
official website Download: http://www.dwin.com.cn/home/Index/download?cate_id=4
   If you have any questions be sure to remember and customer communication, it can save you a lot of time. Remember that certain customer service and communication.

Second, the development environment to build and project preparation
(1), the hardware part of
  my first screen to me as a reference, I bought screen models are: DMT12800K070_A2WTC medical grade capacitive screen, buy some time own official website to view the data sheet, see supply voltage and other relevant parameters (where customer service in order to save, you will not give you the parameters on this screen presentation, you need to find their own), Take me this screen, it's supply voltage range is 7 - 36 V (rated voltage is 12V, rated current of 250mA), but customer service is given information (5 V power supply of other types of screens, I connected to 5V, I thought it was a problem screen will not light), does not give access of how much voltage range, then I go to the official web check later, ask the customer service customer service told me.
  This is the parameter list of each screen given official website: http://www.dwin.com.cn/home/Index/get_screen_list?id=39 here with my screen as an example:

  Here he will also provide several types of connecting lines, achieving screens and computer communications, as well as the role of power to the screen. Switch 232 whenever a USB connection, or a USB to TTL module (CH340), can be connected. ** Note: ** I am here with two serial ports of the screen, a 2 serial port, a serial port 4, the power supply to 9V, 300mA. Because the connection is relatively simple, only need to pay attention to the supply voltage on the line, give me a direct hardware connection diagram:

  After the circuit is connected, the screen will light up directly, then go show manufacturer downloading Demo course, I was like this:

  Such hardware part is complete, there is little attention, Devine screen development is based on the development of memory cards, you need a memory card to store the range 2G - between 16G (32G memory card to do so, we must pay attention here.) Below the software part will explain in detail.

(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 0

int 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
如果还有什么问题一定记住和客服沟通,可以节省你很多时间。 记住一定和客服沟通。
————————————————
版权声明:本文为CSDN博主「心一墨」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_38169460/article/details/99704650

Guess you like

Origin blog.csdn.net/wuhenyouyuyouyu/article/details/102772145