GUI图形屏在emWin应用中使用Unicode字库

1.1需要安装的软件

①MDK-ARM V5.10:

安装完MDK-ARMV5.10 以后还要安装STM32F2xx 的PACK(MDK V5.10 只能安装Keil.STM32F2xx_DFP.2.1.0.pack或-更低版本),如果不想安装PACK,安装MDKCortex-M Legacy Device Support V5.10(mdkcm510.exe)也是可以的;另外MDK-ARMV5.10以后的版本是无法支持中文UTF-8编码的。

② C文件编码格式更改工具:..\docs\tools\EditPlus

③J-LINK相关驱动程序。

1.2连接硬件

1.3访问GUI图形屏的Nand-Flash

①通电GUI图形屏并将N-LINK下载线插入电脑USB接口(两步骤不分先后)。

②按一下N-LINK的连接键,GUI图形屏即可进入U盘模式(使用系统自带驱动),之后就可以跟U盘一模一样访问GUI图形屏的Nand-Flash了(写速度3.2Mbytes/S,读速度5.6Mbytes/S);GUI图形屏进入U盘模式后屏幕是没显示的。

③拷贝Nand-Flash资料到本地磁盘,然后格式化Nand-Flash:

备注:256Mbyte产品格式化为FAT32或FAT都可以,但128Mbyte产品只能格式化为FAT。

1.4 建立HelloWord例程

①用MDK打开工程:

..\docs\democodes\empty_prj_emwin_noOS_207ve_SPI\mdk_proj\demo_emwin.uvproj

②修改maintask.c文件:

#include "dialog.h"

#include <string.h>

#include <stdio.h>

#include "stm32f2xx.h"

#include "glcd.h"

void MainTask(void)

{

GUI_Init();

_mHelloWord(WM_HBKWIN);

while(1) {GUI_Delay(20);}

}

③在..\docs\democodes\empty_prj_emwin_noOS_207ve_SPI\application目录创建helloword.c文件并加入工程:

④编写helloword.c程序:

#include"GUI.h"

#include"dialog.h"

externGUI_CONST_STORAGE GUI_FONT_GL font_uni_16m16;

#define ID_WIN        1001

#define ID_BUT         1002

static constGUI_WIDGET_CREATE_INFO _aHelloWord[] =  //控件结构体数组

{

{WINDOW_CreateIndirect,0, ID_WIN, 0, 0, 640, 480, 0, 0},

{BUTTON_CreateIndirect,"HelloWord", ID_BUT, 280,  430,80, 20},

};

static void_cbHelloWord(WM_MESSAGE* pMsg)          //窗体回调函数

{

switch(pMsg->MsgId)

{

case WM_PAINT:

GUI_SetColor(GUI_BLUE);

GUI_SetFont((GUI_FONT*)&font_uni_16m16);      //设置当前字库

GUI_SetTextMode(GUI_TEXTMODE_TRANS);

GUI_DispStringAt("HelloWord 您好!", 3, 3);        //重绘文字

break;

case WM_INIT_DIALOG:

break;

case WM_NOTIFY_PARENT:

break;

default:

WM_DefaultProc(pMsg);

break;

}

}

WM_HWIN_mHelloWord(WM_HWIN hParent)            //窗体创建函数

{

WM_HWIN hWIN;

hWIN = GUI_CreateDialogBox(_aHelloWord,GUI_COUNTOF(_aHelloWord), _cbHelloWord, hParent, 0, 0);

return hWIN;

}

⑤更改HelloWord.c文件编码格式为UTF-8编码:

使用UNICODE字库还有个重要的工作就是修改包含有中文的c 文件编码格式(没有中文的c 文件可以不修改),因为总要告诉编译器用什么编码格式去编译中文文字(否则会按照电脑操作系统的编码格式编译),因为我们使用的是UNICODE 编码,所以要告诉编译器用UTF-8编码格式编译中文(因为MDK 编译器不支持UNICODE编码,emWin程序运行时再在已移植好的驱动层将UTF-8转成UNICODE编码) ,需安装EditPlus软件。

⑥创建UNICODE字库程序font_uni_16m16.c:

#include"GUI.h"

staticGUI_CONST_STORAGE unsigned char font_uni_16m16_xsize2[]= {16};  //字库第2分段字符的宽(数组)

staticGUI_CONST_STORAGE unsigned char font_uni_16m16_xsize1[]= {8};   //字库第1分段字符的宽(数组)

staticGUI_CONST_STORAGE GUI_FONT_PROP_GL font_uni_16m16_prop2 = { //字库第2分段

0x0080 //起始字符

,0xffff   //结束字符

,&font_uni_16m16_xsize2[0]

,0

};

staticGUI_CONST_STORAGE GUI_FONT_PROP_GL font_uni_16m16_prop1 = { //字库第1分段

0x0020 //起始字符

,0x007f   //结束字符

,&font_uni_16m16_xsize1[0]

,&font_uni_16m16_prop2  //指向下1分段

};

GUI_CONST_STORAGEGUI_FONT_GL font_uni_16m16 ={

GUI_FONTTYPE_PROP_GL

,16       //height of font

,16       //space of font y

,1        //magnification x(not support)

,1        //magnification y(not support)

,&font_uni_16m16_prop1

,0        //Baseline

,0        //Height of lowercase characters

,0        //Height of capital characters

,8        //1:gb2312 2:gbk 4:big5 8:unicode(monospaced) 16:unicode(non-monospaced)

,"a16:u16" //Library of [ascii]:[gb2312/gbk/big5/unicode/utf-8]

};

⑦用..\docs\tools\fontGen.exe字库工具创建ASCII字库:a16.bin

⑧用..\docs\tools\fontGen.exe字库工具创建UNICODE字库:u16.bin

⑨编译HelloWord工程

1.5卸载GUI图形屏的Nand-Flash

在N-LINK下载线处于空闲状态时(指示灯不再闪烁),按一下N-LINK下载线的连接键(或者跟U盘一样卸载、直接从电脑上拔掉N-LINK下载线都可以),GUI图形屏会重启并进入工作模式。

1.6下载并运行HelloWord例程

GUI图形屏产品说明书

第一次使用GUI图形屏_HelloWord例程

GUI图形屏性能测试(SPI接口)

emWin注意事项

emWin驱动移植(上)

emWin驱动移植(下)

emWin使用字库和位图

诺嵌光电

www.neqee.com

时间: 2024-10-03 14:00:43

GUI图形屏在emWin应用中使用Unicode字库的相关文章

GUI图形屏在emWin应用中使用BMP位图片

1.1需要安装的软件 ①MDK-ARM V5.10: 安装完MDK-ARMV5.10 以后还要安装STM32F2xx 的PACK(MDK V5.10 只能安装Keil.STM32F2xx_DFP.2.1.0.pack或-更低版本),如果不想安装PACK,安装MDKCortex-M Legacy Device Support V5.10(mdkcm510.exe)也是可以的:另外MDK-ARMV5.10以后的版本是无法支持中文UTF-8编码的. ②J-LINK相关驱动程序. 1.2连接硬件 1.3

GUI图形屏在emWin应用中显示BMP位图片

1.1需要安装的软件 (1) MDK-ARM V5.10: 安装完MDK-ARM V5.10 以后还要安装STM32F2xx 的PACK(MDK V5.10 只能安装Keil.STM32F2xx_DFP.2.1.0.pack 或更低版本),如果不想安装PACK,安装MDK Cortex-M Legacy Device Support V5.10(mdkcm510.exe)也是可以的:另外MDK-ARM V5.10以后的版本是无法支持中文UTF-8编码的. (2) J-LINK相关驱动程序. 1.

GUI图形屏在emWin应用中的LCD驱动移植

1.1 建立emWin工程目录 1.2 添加文件到目录 (1)demo_emwin\emwin\config: (2)demo_emwin\emwin\driver: (3)demo_emwin\emwin\inc: (4)demo_emwin\emwin\lib: (5)demo_emwin\emwin\os: (6)demo_emwin\emwin\user: (7)demo_emwin\emwin\neqee: (8)demo_emwin\application: 1.2 添加文件到MDK

emWin做人机用户界面显示刷屏慢? 试试带2D图形加速的GUI图形屏

1.简介 GUI图形屏是一款“图形LCD控制器 + TFT液晶屏”的液晶显示模块,可作为第三方图形库emWin/ ucGUI.Microchip-GUI.eGUI.StellarisWare-Grlib.Microwindows.uGFX等等的图形显示设备,GUI图形屏和传统TFT液晶屏最大的区别在于其拥有2D图形加速功能以及字库和图片可储存于外部Nand-Flash(不占用CPU微处理器的内部Flash). GUI图形屏集成了2D图形加速器.字库&位图存储器Nand-Flash,用户只需要修改

精美、便捷的emWin界面设计--GUI图形屏

1.简介 GUI图形屏是一款"图形LCD控制器 + TFT液晶屏"的液晶显示模块,可作为第三方图形库emWin/ ucGUI.Microchip-GUI.eGUI.StellarisWare-Grlib.Microwindows.uGFX等等的图形显示设备,GUI图形屏和传统TFT液晶屏最大的区别在于其拥有2D图形加速功能以及字库和图片可储存于外部Nand-Flash(不占用CPU微处理器的内部Flash). GUI图形屏集成了2D图形加速器.字库&位图存储器Nand-Flas

精美、便捷的emWin界面设计-GLCD(图形屏)

GLCD是英文Graphics Liquid Crystal Display的缩写,即图形液晶屏(简称图形屏).其主要由图形LCD控制器和TFT-LCD组成,GLCD和传统TFT-LCD最大的区别在于其拥有2D图形加速引擎以及集成了Nand-Flash,可储存字库和图片. GLCD可作为emWin/ucGUI.Microchip-GUI等嵌入式GUI图形库的图形显示设备 基于GLCD的emWin界面设计只需要4步,30分钟完成人机界面设计 (1)PC模拟仿真emWin界面程序 (2)美工制作位图

Quartz(GUI)图形界面程序----Quartz Web

下载.设置和运行Quartz(GUI)图形界面程序----Quartz Web 一.获取Quartz Web程序(Quartz GUI).早期的 Quartz 框架开发者意识到一个 GUI 对于某类用户群体是必需的.几年前,一个 Web 应用被创立,它可用于管理 Quartz 框架.虽说是历经了几年有相当投入的开发,但不得不说的,总是时断时续的.近来出现有更多的要求对这个应用的更新与支持,因而又重新吸引了新的开发者自愿的工作并使之保持不断更新.这个应用就是知名的 Quartz Web 程序.Qu

java之 22天 GUI 图形界面编程(一)

转自:http://takeme.iteye.com/blog/1876850 GUI(图形用户界面) Java代码 1 import java.awt.Button; 2 import java.awt.FlowLayout; 3 import java.awt.Frame; 4 import java.awt.event.WindowAdapter; 5 import java.awt.event.WindowEvent; 6 7 /** 8 * GUI(图形用户界面) 9 * Graphi

java进阶08 GUI图形界面

图形化用户界面(GUI) 简而言之,就是可视化编程. 要想实现可视化界面(窗口),需要用到JFrame类. package Frame; public class JFrame1 { public static void main(String[] args){ UI ui=new UI(); } } 先建一个主函数,而主函数中的操作只有一句代码.这样做,既能直观又方便后期修改. 接下来是UI类的实现 package Frame; import javax.swing.JFrame; publi