笔记
同事整来一个10寸的迪文串口屏(200+RMB), 让我试试. 去淘宝看了一下, 他买的应该是下面这种.
这次买的屏用DGUS工具开发时, 和旧版的有点不同, 需要配置字库, CFG, ICL 文件, 烧录进屏内才能正常用. 否则会黑屏, 页面不动作, 或是上一次烧录成功的图片.
试验
迪文屏的DGUS工具有很多版本(对应不同的串口屏主控MCU), 从他家官方下载, 可能下的不是最新版本或和串口屏不匹配. 还好, 迪文的技术支持很到位. 买了屏之后, 问负责和你们公司对接的迪文销售就行.
DGUS开发工具
从对接销售那要来的是DGUS_V7624.rar 自己从官网下载的是DGUS_V7622.rar 官方销售给的版本要新一些.
串口屏原版demo
一定要, 要来屏的出厂demo, 即使是编译好的DWIN_SET压缩包都行. 一旦要是串口屏黑屏, 可以拿官方编译好的SD卡内容, 重新烧录试试.确定串口屏一直是好的. 我要来的官方编译好的demo是 DMG10600C101-03W.zip 打开后, 选电容屏的版本进行烧录测试.
烧录步骤
格式化U盘
format g: /q /x /fs:fat32 /a:4096 /V:my_udisk
参数说明可以参考 format /? 一个U盘只需要格式化一次
DWIN_SET拷贝进U盘
将DWIN_SET丢在U盘根目录下面就行.
串口屏测试线
迪文官方给了 <<T5L DGUSII 应用开发指南20200710.pdf>> 因为迪文串口屏型号多, 手册上写的可能不一定对, 需要问迪文销售. 我看同事问过迪文之后, 接的是VCC/DOUT/DIN/GND. 电源是DC12V. 10.1寸的屏只有232接口. 这种连接线, 如果是做试验, 还是从官方买一条好点, 自己临时焊接的, 方向有点不顺, 不小心线就弯折, 怕来回移动串口屏,短路啥的, 还是要小心. 官方的通讯线如下:
为啥要测试串口屏是否可用
人家串口屏给了出厂demo, 屏一定可用. 这步测试的主要是自己用DGUS编译一个程序后, 是否能在迪文串口屏上跑起来. 如果自己的测试程序编译好的固件可以在串口屏上跑起来, 说明开发流程就对了. 公司以前产品用过旧版的迪文串口屏, 和这个10寸屏(具体说是新版DGUS-T5L)还是有点区别的, 如果不问迪文销售, 真不知道为啥不能用(用DGUS模拟好使, 烧录进串口屏没反应).
写测试程序
解开DGUS_V7624.rar, 运行DGUS Tool V7.624.exe
新建工程
手工建立一个工程文件夹 Z:\test_DMG10600C101-03W
先将分辨率改为1024*600(这个10寸屏的分辨率就是这个) 将官方demo(和此串口屏对应的官方demo)中的字库和CFG文件拷贝进新建工程中的DWIN_SET目录 听迪文销售说, 如果CFG文件错了, 有可能让串口屏黑屏, 只能返厂. 准备一个1024x600的图片(我就整了个纯色的), 随便手画几个按钮框框, 拷贝几份(我这里拷贝了6份), 命名为00_x.png … 05_x.png 这步很重要, 这是迪文DGUS系统要求的, 图片命名必须是00开头. 我就将这些素材图片放到新建工程的bin目录中, 这个目录迪文DGUS不用.
添加底图
每个页面的底图都加上, 我这测试程序,就6个底图(6个页面).
添加迪文UI元素
填UI元素这里很直观 如果是触控元素, 就是设置点击后, 跳到哪个页面. 如果是高级触控元素, 就是点记录, 跳到哪个页面, 是否发送数据到对外的串口(这样, 主控MCU, 上位机,就知道是哪个键按下,就可以去向串口屏取数据, 或者向串口屏上写UI数据了).
这里, 我就在每个页面上都加上6个基本触控元素, 点击1号触控转到第2页, …, 点击第6个触控转到第1页. 放好"基本触控"后, 指定点击这个触控, 会跳到哪个底图. 触控点击后, 对应的跳转页面,已经设置好. 将一个底图中的第1个"基本触控按钮"点击后,跳转的页面指向底图2. 将一个底图中的第2个"基本触控按钮"点击后,跳转的页面指向底图3. 将一个底图中的第3个"基本触控按钮"点击后,跳转的页面指向底图4. 将一个底图中的第4个"基本触控按钮"点击后,跳转的页面指向底图5. 将一个底图中的第5个"基本触控按钮"点击后,跳转的页面指向底图6. 将一个底图中的第6个"基本触控按钮"点击后,跳转的页面指向底图1. 然后将这6个按钮全选(划个框框选中也行), 右击菜单, 选择复制. 然后切换到其他页面, 粘贴过去, 调整下位置. 一个一个的切换到剩下页面, 粘贴这6个"基本触控按钮", 然后调整到同事在底图上约定的按钮位置.
生成工程并导出 这时, 可以用DGUS模拟一下. 如果点击一个非当前页的按钮后, 能转到其他页面, 就OK了.
此时, 关闭工程
关闭工程的目的, 是生成ICL文件和配置文件(.CFG). 否则烧录后到串口屏后没效果.
生成CFG文件
请注意, 这个配置文件上的参数不能改啊, 厂家都整好了(所以要向厂家要和串口屏对应的DGUS工具). 我们只需要"保存到CFG", 覆盖我们新建工程时, 拷贝进来的官方CFG文件(T5LCFG_10600C101-03WTC.CFG) 关掉CFG生成工具.
生成ICL文件
选择我们在工程中用到的那些底图.我就选工程生成好(已经在工程DWIN_SET目录下)的那些底图. 点击生成ICL文件 ICL在工程的DWIN_SET目录下生成, 名字要指定为32.icl 没想到吧? 这要是不问迪文销售, 这哪知道. 关掉ICL生成工具.
重新打开工程, 重新生成工程
重新打开工程, 点击保存, 生成,导出.
拷贝新生成的DWIN_SET文件夹到U盘.
将TF卡(这个10寸屏只有TF卡接口, 要其他SD卡我也没有)插入读卡器, 插入读卡器到开发机USB口. 先将U盘中旧的DWIN_SET文件夹删掉, 再拷贝工程中新生成的DWIN_SET文件夹到U盘. 将U盘安全卸载掉. 拔出读卡器, 拿出TF卡.
将串口屏的电拔掉, 将TF卡插入串口屏TF卡座. 将串口屏上电, 等待固件烧录结束. 等看到出现"SD Card Process … END !"的时候, 我们烧录的固件就烧录完成. 串口屏断电, 取除TF卡, 串口屏上电测试.
上电后, 看到页面是第1页.说明固件烧录进去了. 点击第1个按钮, 切到了第2页, 说明逻辑, 和我们前面设计的一样 串口屏的烧录使用测试, 到此完成.
还需要验证的是:
- 数据主动上报(按钮事件的主动上报)的分析.
- 写变量数据到串口屏内, 我们自己定义的变量地址, 实现变量更新.
这些都可以参考<<T5L?DGUSII?应用开发指南20200710.pdf>>
剩下任务就是按照同事给的正式底图, 摆放迪文DGUS提供的各种UI元素, 显示数据, 设置数据, 按钮事件的上报, 主动根据按钮事件来取屏上的数据(数据不用取, 我们都知道), 或者根据按钮事件(e.g. 按钮的功能是更新数据, 我们重新写新数据到串口屏的变量内存的地址), 或者串口屏上的这个按钮是"关灯", 上位机或主控MCU收到这个串口命令后, 再发命令到设备, 进行关灯操作.
|