前面一直用T5UID3平台的屏幕开发,但是吐槽下《DWIN C Compiler 1》编译器bug太多,项目能不能做好,全靠运气;售后说T5L平台支持keil开发,我感觉挺好,于是从新学习T5L,现在把学习过程记录下来,希望能够帮助入门的人吧。

一、keil环境搭建

现在mdk5一个软件就可以支持开发ARM/C51/迪文,当然需要安装对应插件,所以我个人建议用MDK5开发即可,没必要用keil4了。

mdk5安装请看:MDK5安装破解以及安装stm32与C51支持包(附安装包),

迪文插件安装请看:迪文屏幕T5L平台学习笔记零:KEIL环境搭建

具体安装过程不在详细叙述,这里说下注意点:

1、先安装MDK,再安装J-FLASH,后安装C51,再安装迪文插件;

2、mdk高版本增强了j-link防盗版检测功能,原来低版本下能够用的调试器,在高级版本下不能下载和仿真(注意:J-LINK仿真器不能用于开发迪文屏幕和C51,仅能用于ARM平台开发),解决方案是:

(1)删除Keil_v5\ARM\Segger文件夹下所有文件(目前我用的mdk v5.36);

(2)把低版本Keil_v5\ARM\Segger文件夹下所有文件拷贝到高版本Segger文件夹下(目前我要用的MDK V5.23);

(3)上述步骤操作完成,再安装JLink_Windows_*.exe软件(目前我用的 JLink_Windows_V754b_x86_64.exe),下面一定要选中,否则一些新MCU下载不支持。

注意:mdk需要安装对应的pack包,才有对应型号。

3、安装C51时候,下面一定选Skip,否则MDK开发ARM会有问题。

4、最后安装agdi_installation_dwin.exe,迪文C51开发插件,安装HME05_usbjtag_installer.exe,迪文调试器驱动。

安装完后,新建工程,有三个选项如下,则安装成功:

5、最新版的C51软件c51v960a.exe有个BUG(请看:KEIL/LX51: WARNING L48: IGNORED RECURSIVE CALL 解决办法_萤火虫的电子笔记-CSDN博客),LX51.exe是V4.66.97.0,需要升级为LX51.66.99.0,下载地址:Documentation – Arm Developer

升级前:

升级后:

6、中文乱码问题,请看:keil mdk中文乱码,两种解决方法,字体不再难看_自由的天空-CSDN博客_mdk 乱码

7、生产bin文件

我自己写了一个批处理文件,具有一下优点:

(1)自动寻找 Objects下的HEX文件;

(2)输出bin在bin文件夹,需要在工程文件夹下手动建立bin文件夹;

(3)输出bin文件名格式:T5L51_hex文件名字_当天日期.bin;

(4)需要把tools拷贝到自己的工程文件夹下;

(5)在USER RUN添加:.\tools\bin.bat


@Rem set varRootPath=%cd%
set varRootPath=%~dp0
set varCatToolPath=%varRootPath%\srec_cat.exe
set varCmpToolPath=%varRootPath%\srec_cmp.exe
set varInfoToolPath=%varRootPath%\srec_info.exe
set varCalculateToolPath=%varRootPath%\crc_calculate.exeset "year=%date:~0,4%"
set "month=%date:~5,2%"
set "day=%date:~8,2%"set "hour_ten=%time:~0,1%"
set "hour_one=%time:~1,1%"
set "minute=%time:~3,2%"
set "second=%time:~6,2%"set varScrAppFile=%varRootPath%\..\Objects\*.hexfor /f "delims=" %%a in ('dir /b /a-d /oN "%varScrAppFile%"') do if not defined d set d=%%~naset varOutProductionFile=%varRootPath%\..\bin\T5L51_%d%_%year%%month%%day%.bin@Rem set varOffset=-0x00010000@Rem Hex--->Bin
@Rem %varCatToolPath% %varSrcFile% -intel -o -hex-dump
@Rem %varCatToolPath% %varScrAppFile% -intel -offset %varOffset% -o %varOutProductionFile% -binary%varCatToolPath% %varScrAppFile% -intel -o %varOutProductionFile% -binary

对应资料下载地址: 链接:https://pan.baidu.com/s/1FlZMbbWnzQQe_JVS9TIxqQ 
提取码:urzp

二、T5L开发

1、根据屏幕型号,首先看基本参数,我的屏幕型号DMG80480C070_03WTC:

两个重要参数:分辨率800*480,电源5V/500ma

DGUS开发软件:

V7.618
此版本只适用于T5L(生成icl文件的需要配套GUI内核V36以下版本,
若使用V40的内核请使用V7.623PC软件生成.icl文件,否则会造成显示异常黑屏,可重新用sd卡插卡下载对应的icl或内核文件恢复)
主要增加功能:
(1)、优化文本显示预览功能;
(2)、修正一些已知bug

V7.623
(1)、优化icl工具;(能兼容各版本内核平台)
(2)、修复icl预览不显示问题

注:为了更好的兼容中英文版本demo,以上版本之后的生成的13 14*.bin文件都为英文命名

如果是V40内核,请用 V7.622及以上版本,迪文官网是V7.622,论坛是V7.624(【PC软件】DGUS ToolV7.624(T5L ASIC平台 DGUSII开发模式)),高版本兼容低版本。这里我用的V7.624。

内核更新地址:T5L_DGUSII内核固件升级20211216

注意:不要用V45内核,我用V45白屏,用V36或者V41都正常,把内核BIN拷贝到SD卡的DWIN_SET文件夹即可。

2、画图

我用的PS CS6,注意如下:

这里和T5平台有两个不同点:

(1)图片需要用PC工具生产ICL库,工具如下:

(2)ICL的序号需要在CFG文件的0x08处指定,即0x08处的值等于ICL序号;

注意:

1、没有改变的文件,下载一次即可,节省时间,如0号字库;

显示如下:

PS:有个问题就是汉字乱码,已经做了字库了,等问题解决了,再发上来。

<------------------------------------------------------------------------------------------------------------------------->

2021.12.21

今天把中文显示乱码问题解决了,记录下,希望能够帮助到你吧。

我想显示汉字或者温度符号“℃”,但是显示如上图所示,是乱码。查看手册,字库ID号没有说要在CFG文件配置,查看工程配置,把X=Y,或者2X=Y都是了不行,把文本显示控件高度>Y,全部是偶数,还是不行。用TS4软件测试字库,显示没有问题,这个是80*80的,难道不行,测试64*64的还是不行,哎心累。

百度了下,说C51编译器不支持0xFD,请看:Keil C51汉字内码0xfd BUG问题解决办法

原文如下:

关于keil C51编译时会将汉字(或者其他语言)的内码0xFD忽略掉的原因以及解决方法,基于版本的不断升级,晓奇工作室出来的那个打补丁软件已经难以成效了,当然可以通过手动搜索C51.exe,Cx51.exe(还有将A51.exe,Ax51.exe)中的80FBFD,改为80FBFF也是暂时可以解决这一问题,但是个人更倾向于使用keil官网的解释以及解决方法。

现摘录keil官网的解释以及解决方法(Documentation – Arm Developer),阐述如下:

GENERAL: COMPILER IGNORES 0XFD, 0XFE, 0XFF VALUES IN STRINGS

Information in this article applies to:

  • C166 Compiler All Versions
  • Cx51 Compiler All Versions
  • C251 Compiler All Versions

QUESTION

I have a problem with the interpretation of Russian strings in the Keil C51 compiler. Some Russian characters are using the encoding 0xFD. It looks like this encoding is ignored by the compiler and is not included in the program code.

Example:

code char RussianString[] = "??? ????";

Why does this problem exist and how can I avoid this behavior?

ANSWER

The character encodings 0xFD, 0xFE, and 0xFF are used internally by the C compiler. The ANSI standard only requires support for ASCII characters in the range 0x00 - 0x7F.

You may insert these characters by using HEX encodings in the string as follows:

code char RussianString[] = "My Text" "\xFD";

A simple text replacement which replaces all 0xFD characters with the string '" "\xFD' should do the job.

​大体意思描述一下:0xFD, 0xFE, 和0xFF是作为C编译器的内部来用的,根据ANSI的标准,只需要支持0x00 - 0x7F即可。但是通过十六进制编码(转义字符\x表示)方式来​进行字符串处理之后,那么字符串中所有的0xFD就会被字符串​'" "\xFD'来代替了。

但是我看了下我的编码号“℃”是0xA1E6,测试了下write_dgusii_vp(0x1000,"0.\xA1\xE6\0",5);还是乱码。

今天无意间看了下字库测试,发现“℃”在测试字库里面不是0xA1E6,是0x8140,难道是因为这个?于是测试write_dgusii_vp(0x1000,"0.\x81\x40\0",5);显示正常了。这是为什么?

我又生成了一遍字库,步骤如下:

1、首先配置好字体大小和点阵大小,我的配置如下:

2、由于我就要几个汉字,所以勾选小字库,点击创建,输入要用得字库,这里测试我就随便写了

3、点击确定,就生成我们要的字库了,注意字库的ID可以随便改,这里写24。

4、用TS4的字库测试功能测试下字库,注意可能第一次打开字库,设置大小、编码格式,点击显示后,没有显示,关闭字库测试,再次打开,点击显示就可以了。

看到没有,℃符号的码号=0x8140,那么为什么是0x8140呢?因为我们的字库是从整个GBK字库中截取了像素,那么位置就从新排序了,0x8140是码号开始的第一个位置。那么其他的软件是不是这样呢?我用字库生成器.exe测试了下,配置好字体编码和大小后,由于℃=0xA1E6,那么我就生成从0xA1E0-0xA1E7

生成后,用TS4测试下,如果0xA1E0变成了0x8140,那么℃=0x8146

果然,码号变了,到此汉字乱码问题解决,说下DGUS Tool V7.624.exe显示汉字一个注意点,就是字体大小设置时候X=Y,不能2X=Y(显示汉字乱码),并且FONT1_ID=字体号;如果是ASCII码,X=Y或者2X=Y都可以。

再说一个小技巧,汉字显示可以在最后加“\0”表示字符串结尾。

我个人感觉感觉还是TS4的小字库好用,可以把我们想用的汉字任意组合;字库生成器.exe只能截取某个字库段,浪费空间。

迪文屏幕T5L平台学习笔记一:开发环境搭建注意事项相关推荐

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

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

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

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

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

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

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

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

  5. 实时操作系统-NuttX学习笔记(1)-开发环境搭建

    1 简介 1.1 背景 学习NuttX视频教程,该视频教程语言为英文,为了在以后的工作学习中用到,在此记录学习内容,方便自己和大家查阅. 1.2 开发环境 虚拟机+系统:虚拟机VMware® Work ...

  6. libgdx 学习笔记一 开发环境搭建

    本章内容讲述 libgdx 开发环境.怎么配置eclipse 用来开发,并且在桌面和android中运行libgdx applications 注:文章就是根据libgdx官方文档翻译或加入自己的理解 ...

  7. Ionic 学习笔记之-痛彻心扉的环境搭建

    Ionic 学习笔记之-痛彻心扉的环境搭建 最近在学习Ionic 做多平台的应用.跨平台应用.就是用html写的界面.js实现逻辑. 在学ionic之前选了各种跨平台APP开发框架.最后选择了ioni ...

  8. OpenGL学习笔记(一):环境搭建、三维空间坐标系理解以及OpenGL的基本使用

    原博主博客地址:http://blog.csdn.net/qq21497936 本文章博客地址:http://blog.csdn.net/qq21497936/article/details/7866 ...

  9. 基于Eclipse平台的Android OpenCV开发环境搭建

    基于Eclipse平台的Android OpenCV开发环境搭建 作者:雨水, 日期:2016-1-31,CSDN博客:http://blog.csdn.net/gobitan 摘要:本文主要记录了如 ...

最新文章

  1. C++ string源码
  2. win7 php 5.3,win7 64位 WAMP环境下(PHP5.3) redis扩展无法生效
  3. 怒卸python3.4.1
  4. stomp java客户端_Stomp-Spring服务器端的Web套接字Java客户端
  5. log4j.properties log4j.xml 路径问题
  6. linux中 /dev/null命令
  7. 使用 Spring 2.5 注释驱动的 IoC 功能
  8. maven 打包替换文件_使用Maven打包生成文件 | 学步园
  9. 【Elasticsearch】es 定期删除 已经删除的数据 物理删除 不是等待段合并
  10. Android 源代码下载
  11. JMeter性能测试-安装与入门
  12. B00010 map
  13. 【译】BMP格式与JPG格式之间的区别
  14. ENVI入门系列教程---一、数据预处理---4.1 遥感图像正射校正
  15. Linux epoll模型详解
  16. 如何把二维表转成一维表
  17. DirectX11 With Windows SDK--00 目录
  18. tif数据84坐标经纬度转Unity3D坐标
  19. 没有钱没技术没学历应该怎么去创业?
  20. Java中泛型的使用

热门文章

  1. 苹果系统升级到 Big Sur 果然升级后给你 big surprised - 物理内存不足,无法使用配置的设置开启虚拟机
  2. iphone计算机怎么设置,电脑怎么设置苹果id
  3. OpenGL学习脚印: 帧缓冲对象(Frame Buffer Object)
  4. 滴滴数据分析实习-笔试题
  5. html5在线显示不出来,html5 drawImage 不显示问题
  6. oracle - - 注释符,Oracle数据库扩展语言PL/SQL之注释、分隔符和标识符
  7. java里的文件显示繁体_关于在JSP页面上同时显示简体和繁体的问题(字符编码)...
  8. 苹果手机数据转移到新手机_换新手机了,苦恼该如何转移数据?这个手机功能帮你解决这个问题...
  9. 小米系统服务器卡,小米手机越用越卡?赶紧设置这个功能,网速快到飞起!
  10. 大学化学专业和计算机哪个难,2021大学什么专业比较难学