1、uGUI要求
uGUI官网: 官方网站 github链接:源码 uGUI的使用准备: 1、下载好源码:ugui.c和ugui.h,将其添加至你的平台的工程中; 2、在自己的平台上准备好基本的显示驱动,其中各个平台与uGUI的接口函数为像素填充函数,以0.96OLED为例,需要用到画点函数(单色OLED),其他彩色屏,t对应的为颜色变量color
void OLED_DrawPoint(u8 x,u8 y,u8 t)
{
u8 i,m,n;
i=y/8;
m=y%8;
n=1<<m;
if(t){OLED_GRAM[x][i]|=n;}
else
{
OLED_GRAM[x][i]=~OLED_GRAM[x][i];
OLED_GRAM[x][i]|=n;
OLED_GRAM[x][i]=~OLED_GRAM[x][i];
}
}
2、开始使用
2.1 修改ugui.h
不同的平台需要我们在ugui.h中修改对应的整型,以STM32HAL库为例: 在ugui.h中我们将用户定义的整型名称修改为
typedef uint8_t UG_U8;
typedef int8_t UG_S8;
typedef uint16_t UG_U16;
typedef int16_t UG_S16;
typedef uint32_t UG_U32;
typedef int32_t UG_S32;
不同的平台上需要修改uint8_t、int8_t等,注意要一一对应。
2.2 初始化
首先进行初始化操作 1、首先定义一个用户全局GUI结构体
UG_GUI my_ugui1;
2、然后在主函数中调用初始化函数
UG_Init(&my_ugui1,OLED_SetPFun,128,64);
其中,OLED_SetPFun为你的像素填充函数(准备工作中提到的),128,64为像素大小
3、调用GUI选择函数
UG_SelectGUI(&my_ugui1);
至此,就完成了初始化操作
2.3 简单示例
下面给出一个简单示例: 使用平台:STM32F103ZET6 显示器件:OLED(驱动SH1106、12864,1.3寸)(SPI、SPI DMA、模拟SPI均可,但刷新速度不同)
OLED_Refresh()为显存更新函数
void uGUI_mytest(void)
{
UG_GUI my_ugui1;
UG_Init(&my_ugui1,OLED_SetPFun,128,64);
UG_SelectGUI(&my_ugui1);
UG_FontSelect(&FONT_8X8);
UG_PutChar('B',20,20,C_WHITE,C_BLACK);
OLED_Refresh();
HAL_Delay(500);
OLED_Clear();
UG_FillScreen(C_WHITE);
OLED_Refresh();
HAL_Delay(1000);
OLED_Clear();
UG_FillFrame(0,0,50,50,C_WHITE);
OLED_Refresh();
HAL_Delay(1000);
OLED_Clear();
UG_FillRoundFrame(0,0,50,50,10,C_WHITE);
OLED_Refresh();
HAL_Delay(1000);
OLED_Clear();
UG_FontSelect(&FONT_16X26);
UG_SetBackcolor(C_BLACK);
UG_SetForecolor(C_WHITE);
UG_PutString(0,0,"Hello Wlord!");
OLED_Refresh();
HAL_Delay(1000);
OLED_Clear();
}
演示效果图:
3、更多功能
uGUI 包括有字符、图片、按钮、窗体等显示与功能回调函数等,还有标准的触摸输入以及其它输入设备等接口,具体请参考官方给出的使用文档。
|