打印

emWin 的配置

[复制链接]
842|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zheng522|  楼主 | 2015-8-26 10:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
二进制开关 “B”
开关的值可为 0 或 1, 0 表示去激活,而 1 表示激活(实际上除 0 以外的任何值都起作用,但是使用
1 时读取配置文件更容易)。这些开关可启用或禁用某些功能或行为。开关是最简单形式的配置宏。
数值 “N”
数值用在代码中某个位置,代替数值常数。典型示例是在显示器分辨率的配置中。
选择开关 “S”
选择开关用于在只能从多个选项中选择一项时选择一个选项。典型示例是选择要用的显示控制器类
型,这时选定的数字表示哪个源代码 (在哪个显示驱动中)用于生成对象代码。
别名 “A”
像简单文本替换一样进行操作的宏。示例为定义 U8,预处理器将替换为不带符号字符。
函数替换 “F”
基本上宏可以像常规函数一样进行处理,尽管有某些限制,因为宏仍可像简单文本替换一样被置入代码中。函数替换主要用于向具有高度硬件依赖性的模块 (如对显示器的访问)添加特定的功能。此类型的宏通常用括号 (和可选参数)进行声明。
沙发
zheng522|  楼主 | 2015-8-26 10:37 | 只看该作者
GUI_Init()            初始化 emWin 内部数据结构和变量。
GUI_Exit()            从存储器清除 emWin 内部数据。

使用特权

评论回复
板凳
上山砍老虎| | 2015-8-26 10:38 | 只看该作者
有目标硬件时使用 emWin
以下只是用emWin开始编程时要采取的通用步骤的基本概述。在后续章节中会进一步说明所有步骤。
第 1 步:配置 emWin
第一步通常是定制 emWin。有关位图转换器的详细信息,请参阅 “配置”(第 905 页)。
第 2 步:定义访问地址或访问例程
对于存储器映射显示控制器,只需在显示控制器的配置文件中定义显示器的访问地址。对于通过端口 /
缓冲器访问的显示器控制器,必须定义接口例程。所需例程的示例可在 Samples\LCD_X 中找到。
第 3 步:编译、链接和测试示例代码
emWin 附带有单任务和多任务环境的示例代码。编译、链接和测试这些小示例程序,直至熟悉这些
操作为止。
第 4 步:修改示例程序
对示例程序进行简单修改。添加其他命令,如在显示器上显示不同尺寸的文本、显示直线等。
第 5 步:在多任务应用程序中:改编以适应您的 OS (必要时)
如果多个任务能同时访问显示器,则宏 GUI_MAXTASK 和 GUI_OS 以及文件 GUITask.c 发挥作用。
有关详细信息和改编示例,请参阅 “配置”(第 905 页)。
第 6 步:使用 emWin 编写自己的应用程序
到目前为止,您应该已经清楚了解如何使用 emWin。考虑如何构建应用要求的程序,并通过调用适
当的例程来使用 emWin。请查阅本手册稍后的参考章节,这些章节讨论了具体的 emWin 功能和可
用的配置宏。

使用特权

评论回复
地板
上山砍老虎| | 2015-8-26 10:39 | 只看该作者
“Hello world”示例程序
下面所示为 “Hellow world”示例程序。如果希望查看更多基于 emWin 的应用程序示例以及进一步的简单教程应用程序。
“Hello world”程序在早期就已用作 C 语言编程的起点,因为它基本上是可以编写的最小程序。以下所示为一个 emWin “Hello world”程序,在 emWin 随附的 Sample\Tutorial 文件夹中名为BASIC_HelloWorld.c。该程序的全部目的是将 “Hello world”写入显示器的左上角。为此,必须首先初始化应用程序的硬
件、显示控制器和 GUI。只需在程序开始调用 GUI_Init() 即可初始化 emWin。在本示例中,我们假定您应用程序的硬件已经初始化。Hello world 程序如下所示:
#include "GUI.h"
void MainTask(void) {
GUI_Init();
GUI_DispString("Hello world!");
while(1);
}

使用特权

评论回复
5
上山砍老虎| | 2015-8-26 10:40 | 只看该作者
向 “Hello world”程序添加功能
这个小程序目前能做的还不算很多,现在可以将功能扩展一点:在显示 “Hello world”以后,我们
想要程序开始在屏幕上记数,以便估算向显示器的输出速度。只需将少量代码添加到主程序末尾的循
环中,其作用实际上是调用显示十进制值的函数。
该示例在 Sample 文件夹中,名称为 BASIC_Hello1.c。
#include "GUI.h"
void MainTask(void) {
int i=0;
GUI_Init();
GUI_DispString("Hello world!");
while(1) {
GUI_DispDecAt( i++, 20,20,4);
if (i > 9999) {
i = 0;
}
}
}

使用特权

评论回复
6
关小波522| | 2015-8-26 10:44 | 只看该作者
这个东西很好,不过学起来有点麻烦啊

使用特权

评论回复
7
雾霾和青山| | 2015-8-26 15:10 | 只看该作者
这个和UCGUI有什么区别呢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

73

主题

821

帖子

3

粉丝