层次:LCD驱动完备,操作STEMWIN函数显示内容,LCD驱动层是透明的
字库:字母库集成在STemWin526_cm4_iar.a的库中, 没有源代码
文件:user中建立一个专门GUI操作函数,供main.c调用
========在某个坐标显示纯文字=================================
#include "GUI.h"
void MainTask(void) {
int xPos, yPos;
int xSize;
int i;
i = 0;
GUI_Init();
xPos = LCD_GetXSize() / 2;
yPos = LCD_GetYSize() / 3;
GUI_SetTextMode(GUI_TM_REV); //文本模式
GUI_SetFont(GUI_FONT_20F_ASCII); //字体
GUI_DispStringHCenterAt("Hello world!", xPos, yPos);//显示函数
GUI_SetFont(GUI_FONT_D24X32);
xSize = GUI_GetStringDistX("0000");
xPos -= xSize / 2;
yPos += 24 + 10;
while (1) {
GUI_DispDecAt( i++, xPos, yPos, 4);
if (i > 9999) {
i = 0;
}
}
}
实验结果
=======在预定义的某个区域填充颜色,并显示文字,配置换行==========
#include "GUI.h"
int i;
char acText[] = "this wrapping";
GUI_RECT Rect = {10,10,59,59}; //指定放置文字的矩形框
GUI_WRAPMODE aWm[] = {GUI_WRAPMODE_NONE, //第一个矩形框没有换行
GUI_WRAPMODE_CHAR, //第二个矩形框按字节换行
GUI_WRAPMODE_WORD}; //第三个矩形框按字换行
void MainTask(void)
{
GUI_Init();
GUI_SetTextMode(GUI_TM_TRANS);
for(i=0;i<3;i++)
{
GUI_SetColor(GUI_BLUE); //蓝色
GUI_FillRectEx(&Rect);
GUI_SetColor(GUI_WHITE); //白色字体
GUI_DispStringInRectWrap(acText,&Rect,GUI_TA_LEFT,aWm[i]); //将文字放置在Rect,左对齐,换行设置
Rect.x0 += 120; 每次左上角横坐标右移
Rect.x1 += 110; 每次右下角横坐标右移
}
while(1)
{
GUI_Delay(10);
}
}
结果