# GT-GUI 快速上手移植手册
Copyright (c) 2014-present, Company Genitop. Co., Ltd.
Genitop GUI 快速上手移植,运行框架的指南手册。
## 1 介绍
### 1.1 最低运行环境
+ 16、32或64位微控制器(处理器)
+ 时钟频率:建议使用大于或等于72MHz
+ 编译器:建议C99及以上
+ ROM:建议大于或等于64KB(拓展使用扩展功能组件,建议大于或等于128KB)
+ RAM:
+ 堆(含动态数据):建议大于或等于8KB(使用多个对象,建议使用大于或等于24KB),可通过gt_conf.h中配置堆内存大小
+ 显示缓存:根据显示方式,分为三种刷新方式;占用空间等于或大于 [显示行数(推荐10行) x 显示屏水平分辨率 x 单像素的色深] (Byte)
+ ---
+ 静态RAM:取决于用户使用功能和对象类型
+ MCU或外部显示控制器中的帧缓冲区
### 1.2 配置文件
GUI 框架的配置文件的路径为 src/gt_conf.h,用于配置项目显示、输入、功能等属性。
还可控制运行环境的输出日志等功能,方便对GUI的框架运行进行调试工作。
## 2 目录结构
GUI顶层目录结构:
>
> |-driver/ -> 移植驱动底层
>
> |-src/ -> gui 代码
>
> |-examples/ -> gui的使用示例
>
GUI移植需要把上述文件夹移植到目标项目工程内,并包含其文件路径到项目中。
### 2.1 driver说明
实现包含GUI应用层可能需要用到的硬件资源接口,提供应用层显示、输入、定时器等硬件资源。
> driver/ 目录下的文件:
>
> gt_port_disp.h / gt_port_disp.c 显示屏的硬件刷屏接口
>
> gt_port_indev.h / gt_port_indev.c 输入设备的硬件通讯接口
>
> gt_port_src.h / gt_port_src.c 素材资源管理(本地RAM数组模式)
>
> gt_port_vf.h / gt_port_vf.c 素材资源管理(外接Flash模式)
>
#### 2.1.1 gt_port_disp.h 移植显示驱动
##### (1). 显示屏刷新的三种缓冲模式
```c
/* GT_REFRESH_STYLE type don't change */
#define GT_REFRESH_STYLE_0 0 /* no cache buf, It is suitable for MCU with low refresh requirements and low performance */
#define GT_REFRESH_STYLE_1 1 /* cache 10 lines buf, It is suitable for MCU with low refresh requirements and low performance */
#define GT_REFRESH_STYLE_2 2 /* cache 10+10 lines buf, It is suitable for MCU with high refresh requirements and high performance */
#define GT_REFRESH_STYLE_3 3 /* cache all screen buf, It is suitable for MCU with high refresh requirements and high performance */
/* 显示屏的刷新缓冲区模式 */
#if(GT_REFRESH_STYLE == GT_REFRESH_STYLE_0)
#elif(GT_REFRESH_STYLE == GT_REFRESH_STYLE_1)
static gt_color_t buf1[GT_SCREEN_WIDTH * GT_REFRESH_FLUSH_LINE_PRE_TIME];
#elif(GT_REFRESH_STYLE == GT_REFRESH_STYLE_2)
static gt_color_t buf1[GT_SCREEN_WIDTH * GT_REFRESH_FLUSH_LINE_PRE_TIME];
static gt_color_t buf2[GT_SCREEN_WIDTH * GT_REFRESH_FLUSH_LINE_PRE_TIME];
#elif(GT_REFRESH_STYLE == GT_REFRESH_STYLE_3)
static gt_color_t buf_all[GT_SCREEN_WIDTH * GT_SCREEN_HEIGHT];
#endif
```
1. 每次LCD更新10行的显示刷新模式,单缓冲区工作方式;(行数可修改,下同)
2. 每次LCD更新10行的显示刷新模式,双缓冲区工作方式;
3. LCD全屏的显示刷新模式,单缓冲区工作模式。
实现刷屏的回调函数, 在 `gt_port_disp_init()` 中注册到刷屏的事件中:
```c
void (* flush_cb)(struct _gt_disp_drv_s * drv, gt_area_st * area, gt_color_t * color);
```
##### (2). 配置显示尺寸
在 src/gt_conf.h 中配置显示尺寸,设置水平分辨率和垂直分辨率,如下:
```c
#define GT_SCREEN_WIDTH 240
#define GT_SCREEN_HEIGHT 320
```
#### 2.1.2 gt_port_indev.h 移植输入驱动
输入设备的驱动代码,涉及按键、电阻屏,电容屏等输入设备;
需要实现下列输入事件的回调函数,根据实际的开发需求,使用相应的输入事件:
```c
void read_cb(struct _gt_indev_drv_s * indev_drv, gt_indev_data_st * data);
void read_cb_btn(struct _gt_indev_drv_s * indev_drv, gt_indev_data_st * data);
```
#### 2.1.3 gt_port_src.h 本地数组
使用我司提供的文件管理软件(或GUI-HMI),导出c数组形式的素材资源内容,将数据数组和类文件管理数组注册到内核中。
通过文件盘符路径,访问素材内容等数据。
```c
static const uint8_t _src_A[] = {
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
};
static const uint8_t _src_png_file_img[] = {
0x89,0x50,0x4E,0x47,0x0D,0x0A,0x1A,0x0A,0x00,0x00,0x00,0x0D,0x49,0x48,0x44,0x52,
0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x08,0x06,0x00,0x00,0x00,0x73,0x7A,0x7A,
0xF4,0x00,0x00,0x02,0x32,0x49,0x44,0x41,0x54,0x58,0x47,0xED,0xD7,0x4F,0xA8,0x4D,
0x51,0x14,0xC7,0xF1,0xCF,0x9B,0x28,0x85,0x94,0x09,0xA5,0x90,0x08,0x03,0x19,0x28,
0x91,0xFC,0x89,0x12,0x21,0x09,0x51,0x8A,0x91,0x37,0x10,0x79,0x33,0x65,0xF0,0x28,
0x51,0x4A,0x42,0xF9,0x9B,0x32,0x41,0x91,0x08,0x19,0x11,0x65,0xA2,0x10,0x31,0x22,
0x33,0x62,0xA0,0x10,0x33,0x25,0x5A,0xDA,0x5B,0xF7,0x1E,0xE7,0x5C,0xEF,0x76,0x4E,
0x5D,0x03,0x67,0x76,0xEF,0x5D,0x7B,0xAD,0xEF,0x59,0x6B,0xED,0xDF,0x5A,0xB7,0x4F,
0x8F,0x9F,0xBE,0x1E,0xC7,0xF7,0x1F,0xA0,0x2A,0x03,0x33,0x70,0x16,0x33,0x31,0xA2,
0x66,0x99,0x9E,0xE0,0x32,0x0E,0x95,0xF9,0x29,0x03,0x58,0x84,0x7B,0xC9,0xF8,0x0C,
0xDE,0xD7,0x04,0x18,0xC0,0x28,0x6C,0xC0,0x95,0xA2,0xAF,0x32,0x80,0x07,0x18,0x8B,
0x29,0x35,0x03,0xB7,0x1E,0xBF,0x84,0x8D,0xC9,0xE7,0xEB,0xD6,0x1F,0xCA,0x00,0xBE,
0xE0,0x3C,0x76,0x36,0x08,0xB0,0x09,0x17,0x93,0xCF,0xE3,0x7F,0x03,0xF8,0x81,0x7D,
0xD8,0xDB,0x20,0x40,0x2E,0xEB,0x1F,0x7E,0xCB,0x32,0xF0,0x1F,0xA0,0xA7,0x19,0xA8,
0xAC,0x55,0xCD,0x7E,0xC8,0x7E,0x0F,0xE0,0x3A,0x1E,0x65,0x7F,0xB9,0x07,0xB6,0x62,
0x0B,0xC2,0x30,0x9E,0x57,0x88,0xAB,0xD3,0x54,0x23,0xCE,0xC3,0xC9,0x24,0x6C,0xE1,
0xFF,0x39,0x8E,0xE1,0x5C,0x00,0xCC,0xC1,0xC3,0x74,0xF5,0x6E,0x62,0x18,0xA6,0x61,
0x10,0x0B,0x10,0xBA,0x50,0xE7,0x19,0x8D,0x4F,0xE9,0x66,0xBD,0x45,0xE8,0x40,0x5C,
0xCB,0x6D,0x58,0x1B,0x00,0x91,0x92,0xF1,0x98,0x5D,0x88,0x72,0x03,0xAB,0x12,0xCC,
0xCB,0x1A,0x04,0xEF,0xF0,0x18,0xAB,0x0B,0x3E,0x6E,0x63,0x6A,0x00,0x84,0xEC,0xBE,
0x28,0x11,0x9E,0x71,0xE9,0xE0,0x1B,0x2C,0x4F,0x6F,0xD1,0x2D,0xC7,0x1D,0x4C,0x4F,
0x2F,0x57,0x94,0xF4,0x28,0xEF,0x60,0x06,0xF8,0x86,0x65,0x25,0xDE,0x57,0x22,0xCA,
0x72,0x15,0xEB,0xBA,0x8C,0x7E,0x34,0xBD,0x54,0x64,0xF1,0x56,0xC9,0xD9,0xDF,0x00,
0x6B,0x70,0xAD,0x83,0xFA,0x85,0xE1,0x42,0x2C,0xEE,0x02,0xA0,0x1F,0xA7,0x3A,0xF8,
0x3C,0x88,0xDD,0x18,0xC8,0xB7,0xE0,0x08,0x76,0x61,0x29,0xEE,0x76,0x11,0xA8,0xCC,
0x74,0x7E,0x6A,0xDC,0xC8,0x5C,0xB1,0xEE,0x61,0xBF,0x04,0x51,0x9A,0x98,0xB4,0xFD,
0x19,0x60,0x64,0xFA,0x32,0x0C,0x02,0xE2,0x6B,0x05,0x44,0x1E,0xD3,0x9D,0x18,0xA3,
0x77,0xC2,0x5F,0x34,0x75,0xB1,0xEE,0x39,0xCE,0x18,0xCC,0xC5,0x87,0xD6,0x59,0x90,
0xC9,0x62,0x0A,0xB6,0x4D,0xAC,0x96,0x68,0x43,0x01,0x08,0xF3,0xC3,0x15,0x75,0xDF,
0x91,0xEE,0xFF,0x76,0x9C,0x08,0xC3,0xE2,0x30,0x8A,0x66,0x1B,0x8E,0x15,0x35,0xCB,
0x50,0x75,0x3C,0x7A,0x2D,0xB6,0xAC,0xC9,0x45,0x25,0xCC,0x9F,0xF7,0x60,0x3F,0x22,
0x45,0x1F,0x1B,0x86,0xC8,0x82,0xF4,0xAB,0xF6,0x55,0x00,0x59,0xB3,0x37,0xE3,0x42,
0xC3,0x00,0xEB,0xD3,0x6E,0xD8,0xB6,0x9A,0x55,0xED,0x03,0x6D,0x94,0x0D,0x81,0x9C,
0x4E,0x12,0x3C,0xA1,0x55,0xD4,0xCA,0x00,0x9E,0x62,0x22,0x9E,0x35,0x14,0x38,0xBB,
0x99,0x85,0xCF,0x98,0xD4,0xEA,0xB7,0x0C,0x20,0xA6,0x62,0xEC,0x84,0xF7,0x1B,0x06,
0x88,0x1E,0xF8,0x5E,0x9C,0x39,0x9D,0xD6,0xF2,0x50,0xBE,0x26,0x21,0xF2,0x15,0x6E,
0x53,0xD4,0x7F,0x16,0x20,0x76,0x81,0x6E,0xB4,0x7F,0x28,0xD5,0xCA,0xCB,0x4D,0xDB,
0x92,0xD3,0xF3,0x3F,0xA7,0x3F,0x01,0xDA,0x7A,0x7A,0xBC,0xA2,0xB1,0xA6,0xDF,0x00,
0x00,0x00,0x00,0x49,0x45,0x4E,0x44,0xAE,0x42,0x60,0x82,
};
/* 需要将下面的结构体数组注册到内核中 */
static const gt_src_st _src_icon_sys[] = {
没有合适的资源?快使用搜索试试~ 我知道了~
GT-HMI : 专为国内嵌入式 UI 设计开发打造的免费神器!
共202个文件
c:92个
h:90个
gif:7个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 113 浏览量
2024-05-15
09:36:22
上传
评论
收藏 4.94MB ZIP 举报
温馨提示
GT-HMI : 专为国内嵌入式 UI 设计开发打造的免费神器!GT-HMI(Human Machine Interface) 国产开源 GUI 框架及永久免费设计软件。它提供创建具有易于使用的图形元素,精美的视觉效果和低内存占用的嵌入式 GUI 所需的一切。针对国内市场及用户需求,使用习惯进行了优化设计,为国内工程师量身打造!产品由中国高通 GENITOP 倾心打造,继承了中国高通 30 年的汉显技术及汉字技术积累。产品分为上位机 GT-HMI Designer 和下位机 GT-HMI Engine
资源推荐
资源详情
资源评论
收起资源包目录
GT-HMI : 专为国内嵌入式 UI 设计开发打造的免费神器! (202个子文件)
gt_port_src.c 286KB
lodepng.c 268KB
gt_symbol.c 96KB
gt_draw.c 78KB
gt_font.c 59KB
tjpgd.c 42KB
gt_disp.c 38KB
gt_tlsf.c 34KB
gt_keypad.c 33KB
gt_listview.c 32KB
gt_clock.c 25KB
gt_slider.c 23KB
gt_indev.c 23KB
gt_roller.c 23KB
gt_btnmap.c 21KB
gt_status_bar.c 21KB
gt_dialog.c 20KB
gt_player.c 20KB
gt_chat.c 19KB
gifdec.c 18KB
gt_input.c 18KB
gt_graph_base.c 18KB
gt_draw_blend.c 17KB
gt_btn.c 16KB
gt_style.c 16KB
gt_sjpg.c 15KB
gt_anim.c 14KB
gt_obj.c 13KB
gt_textarea.c 13KB
gt_view_pager.c 11KB
gt_checkbox.c 11KB
gt_mem.c 11KB
gt_input_number.c 11KB
gt_radio.c 11KB
gt_obj_class.c 10KB
gt_barcode.c 10KB
gt_hal_disp.c 10KB
gt_progress_bar.c 9KB
gt_obj_pos.c 9KB
gt_wordart.c 9KB
gt_imgbtn.c 9KB
gt_label.c 9KB
gt_qrcode.c 9KB
gt_scr_stack.c 8KB
gt_gif.c 8KB
gt_stack.c 7KB
gt_png.c 7KB
gt_hal_vf.c 7KB
gt_vector.c 6KB
gt_switch.c 6KB
gt_line.c 6KB
gt_math.c 6KB
gt_img_decoder.c 6KB
gt_rect.c 6KB
gt_img.c 6KB
gt_timer.c 6KB
gt_area.c 6KB
gt_fs.c 5KB
gt_effects.c 5KB
gt_hal_src.c 5KB
gt_obj_scroll.c 4KB
gt_event.c 4KB
gt_group.c 4KB
gt_gui_driver.c 4KB
gt_template.c 4KB
gt_txt.c 4KB
gt_option.c 3KB
gt_layout.c 3KB
gt_hal_indev.c 3KB
gt_example_roller.c 2KB
gt_example_anim1.c 2KB
gt_refr.c 2KB
gt_example_img.c 2KB
gt_port_disp.c 2KB
gt_handler.c 2KB
gt_gc.c 2KB
gt_example_listview.c 2KB
gt_example_button.c 2KB
gt_example_progress_bar.c 2KB
gt_color.c 2KB
gt_port_indev.c 2KB
gt_port_vf.c 2KB
gt_example_checkbox.c 1KB
gt_example_keyboard.c 1KB
gt_example_input.c 1KB
gt_example_line.c 1KB
gt_hal_tick.c 1KB
gt_example_img_button.c 1KB
gt_extra.c 1KB
gt_example_label.c 1KB
gt_hal_fs.c 1KB
gt_ll.c 1004B
Doxyfile 120KB
组合.gif 3.48MB
矢量字库.gif 559KB
多国语言.gif 285KB
键盘.gif 232KB
幻灯片.gif 38KB
图片按钮.gif 24KB
button.gif 18KB
共 202 条
- 1
- 2
- 3
资源评论
Java程序员-张凯
- 粉丝: 1w+
- 资源: 6713
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功