微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 一种嵌入式GUI的研究与应用

一种嵌入式GUI的研究与应用

时间:12-20 来源:互联网 点击:

GUI_MAXTASK和GUI_OS宏,实现uC/GUI与操作系统的结合。

⑹编写自己的应用程序。

使用uC/GUI开发应用程序时,目标系统不是必须配备的,因为uC/GUI提供了一个模拟器,用户可以在模拟器上面看到应用程序的执行的结果。所以,对于开发环境,uC/GUI仅要求有一个符合ANSI标准的“C”语言编译器。至于C++编译器,它不是必须的,但是如果用户使用C++语言来编写应用程序,那就需要一个C++编译器。[1]

因此,在Windows系统下只要安装了Microsoft Visual C++就可以运行uC/GUI的模拟器工程(工程名一般为Simulation.dsw),然后将该工程中的Application文件夹清空,加入自己编写的源文件,编译链接就可以看到运行结果。

3.3应用实例

下图是用uC/GUI开发应用程序的一个实例,该程序是显示汽车运行时发动机转速的一个界面。

图4 用户界面图

黑色的背景是这个LCD的窗口区域,大小为640*480。先利用画线函数绘制基本的弧线,再利用填充函数填充相应的背景颜色,最后用一个分片存储设备执行一个指定的绘图函数,在这种情况下,在一段时间内只有一小部分要更新。

STatic void DemoScale(void)

{

int Cnt;

int tDiff, t0 = GUI_GetTime();

PARAM Param; /* 绘图函数的参数 */

GUI_AUTODEV AutoDev; /* 分片存储设备对象 */

GUI_SetColor(GUI_WHITE); /*设置颜色*/

GUI_SetFont(GUI_Font8x16);/*设置字体*/

GUI_DispStringHCenterAt(“Scale using GUI_AUTODEV-object”, 160, 0);

GUI_AA_EnableHiRes();/* 启动高分辨率用于抗锯齿 */

GUI_AA_SetFactor(MAG);

GUI_MEMDEV_CreateAuto(AutoDev); /* 建立 GUI_AUTODEV 对象 */

/* 显示在一个固定时间上的指针 */

for (Cnt = 0; (tDiff = GUI_GetTime() - t0) 24000; Cnt++);

{

/* 获得数值用于显示一个多边形来表示指针 */

Param.Angle = GetAngle(tDiff)* DEG2RAD;

GUI_RotatePolygon ( Param.aPoints,

aNeedle,

countof(aNeedle),

Param.Angle);

GUI_MEMDEV_DrawAuto(AutoDev, Param.AutoDevInfo, Draw, Param);

}

4 结束语

本文只是简单展示了uC/GUI在开发图形用户界面上的应用,其巨大的应用潜力还有待进一步的研究。相信随着计算机渗透到人类工作和生活的各个方面,以嵌入式系统为核心的后PC时代的到来,uC/GUI的应用前景也将更为广阔。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top