在小型嵌入式设备中有时需要简单的人机2交互界面,小型GUI有很多,比较常用的有STenWin,UCGUI,enwin,Embedded Wizard GUI。对与STenWin和enWin区别主要在STenWin在ST芯片上商用也完全是免费的。本blog介绍enWin使用部分中文字库。

  开发环境:

        window10操作系统;

        KEIL MDK 5.23

        FontCvtST.exe.

  开发工具;

        window10电脑;

        STM32F767IGT6学习板;

        J-linkV9烧录器

  软件资料;

       enWin V5.32

       STM32Cube_FW_F7_V1.6.0

首先制作字库,使用的软件FontCvtST.exe.

打开软件后,新建Standard字库,Encoding选择16 Bit UNICODE,然后点ok。

然后就是字体设置,大家根据需求自行设置。

下面讲解字库添加,首先点击Edit->Disable all characters,这样我们把字库所有中文失能了,然后我们新建以供文档,里面内容就是你需要用到的中文字,比如我要使用:万连集团欢迎访问buy.42iot.com,文件如下:

特别注意的是保存是编码一定要修改问Unicode,否则程序不能使用。

txt文档制作ok后,我们导入FontCvtST.exe。点击Edit->Read pattern file选择我们的txt文件。可以看到软件中我们需要的字背景变白色,则说明导入字ok;

现在可以生成.c文件,我们点击File->Save As就可以得到我们需要的文件;

最后我们把.c添加到文件的工程去,在enWin初始化时一定要添加GUI_UC_SetEncodeUTF8();

	GUI_Init();  					//GUI初始化
WM_MULTIBUF_Enable(1);
GUI_Clear(); //清除显示屏
WM_SetCallback(WM_HBKWIN, &_cbBkWindow); //设置背景回调函数
GUI_CURSOR_Show(); //开启鼠标显示
GUI_UC_SetEncodeUTF8(); //使能EncodeUTF8

把字库定义到要使用的文件中;

extern GUI_CONST_STORAGE GUI_FONT GUI_FontFont_HZ16;

必然我要把TEXT设置中文,和enWin设置其他字体一样,但要在字体前加取值符;

 TEXT_SetFont(hItem, &GUI_FontFont_HZ16);

到处我们完成了enWin使用部分字库的实验,但我们编译发现有错误,由于使用汉字,我们需要把使用汉子的.c文件编码改为UTF-8。我们可以打开.c另存为在相同路径覆盖掉之前.c就可以了,以后每次修改此.c都要修改编码方式,这应该是keil 5的bug吧。

我们重新编译就ok了,至此我们就完全完成了实验

最新文章

  1. CentOS7 Tomcat 环境部署
  2. spring使用Email邮件系统
  3. org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter与org.apache.struts.dispatcher.FilterDispatcher是什么区别?
  4. 遍历并remove HashMap中的元素时,遇到ConcurrentModificationException
  5. Yii框架-Smarty-整合
  6. 通过代码设置radiobutton不同方位图标的两种方法
  7. Mysql存储过程和函数
  8. NodeJS学习目录
  9. 高通HAL层之Sensor HAL
  10. 第七篇: 消息总线(Spring Cloud Bus)
  11. Doing Homework HDU - 1074
  12. Cents os 7下如何安装bzip2
  13. Py-lamda表达式学习【转载】
  14. MongoDB(课时13 where条件过滤)
  15. OpenCL + OpenCV 图像旋转
  16. C# 中奇妙的函数–8. String Remove() 和 Replace()
  17. Standard - 多线程基本概念面试题待整理
  18. supervise 用来监控服务,自动启动
  19. redis入门:介绍、特点、安装、各类型常用操作
  20. Thymeleaf框架

热门文章

  1. layui 动态添加 表格数据
  2. 简单后台登录逻辑实现Controller
  3. NOIP2017 D1T1 小凯的疑惑
  4. [REPRINT]Properties vs. Getters and Setters
  5. 进程队列补充、socket实现服务器并发、线程完结
  6. java面向对象复习之一
  7. 6392. 【NOIP2019模拟2019.10.26】僵尸
  8. Element ui 中的表格数据格式转换
  9. CF543B Destroying Roads 枚举 + 思维 + BFS
  10. Logstash介绍及Input插件介绍