硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3960|回复: 16
收起左侧

[LearningGUI] 已经发布0.5版本LearningGUI源码

[复制链接]

5

主题

27

回帖

42

积分

新手上路

积分
42
发表于 2018-6-1 17:56:36 | 显示全部楼层 |阅读模式
如题。源码为 LearningGUI-GPLv3-0-5.tgz (6.76 MB, 下载次数: 361)


回复

使用道具 举报

5

主题

27

回帖

42

积分

新手上路

积分
42
 楼主| 发表于 2018-6-1 17:57:31 | 显示全部楼层
对比0.3版本源码,修改如下:
回复

使用道具 举报

5

主题

27

回帖

42

积分

新手上路

积分
42
 楼主| 发表于 2018-6-1 17:59:36 | 显示全部楼层
修复两处BUG, 优化WINDOWS刷新代码,增加WINDOWS中文演示例子,增加综合演示例子,修改图片转换工具软件,部分标准化文件名称。
回复

使用道具 举报

5

主题

27

回帖

42

积分

新手上路

积分
42
 楼主| 发表于 2018-6-1 18:00:14 | 显示全部楼层
欢迎大家使用LearningGUI编程。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
发表于 2018-6-2 01:41:17 | 显示全部楼层
谢谢楼主分享。
回复

使用道具 举报

18

主题

321

回帖

375

积分

高级会员

积分
375
发表于 2018-12-4 22:31:27 | 显示全部楼层
新手准备接触GUI,MCU是STM32F407怎么样,应该跑的起来吧,楼主有移植文档吗?
回复

使用道具 举报

5

主题

27

回帖

42

积分

新手上路

积分
42
 楼主| 发表于 2019-1-31 21:34:33 | 显示全部楼层
王海靖 发表于 2018-12-4 22:31
新手准备接触GUI,MCU是STM32F407怎么样,应该跑的起来吧,楼主有移植文档吗?

LearningGUI可以在STM32F407运行。移植很简单,主要是注册LCD初始化函数,打点函数,画线函数,填充函数等等。
回复

使用道具 举报

65

主题

432

回帖

632

积分

金牌会员

积分
632
发表于 2019-1-31 23:03:33 | 显示全部楼层
楼主应用这个GUI出产品了?
回复

使用道具 举报

5

主题

27

回帖

42

积分

新手上路

积分
42
 楼主| 发表于 2019-2-1 20:36:13 | 显示全部楼层
taobaofarmer 发表于 2019-1-31 23:03
楼主应用这个GUI出产品了?

已经有几家商用LearningGUI了。其中有一家做智能对讲机的,已经推出两款产品,并且计划2019年再推出三款产品。有兴趣的,可以加我QQ960747373私聊。
回复

使用道具 举报

65

主题

432

回帖

632

积分

金牌会员

积分
632
发表于 2019-2-2 23:14:02 | 显示全部楼层
移植需要填充打点函数,画线函数,填充函数,这几个函数都要自己实现?emWin只需要自己提供打点函数就行的
回复

使用道具 举报

5

主题

27

回帖

42

积分

新手上路

积分
42
 楼主| 发表于 2019-2-3 10:08:16 | 显示全部楼层
王海靖 发表于 2018-12-4 22:31
新手准备接触GUI,MCU是STM32F407怎么样,应该跑的起来吧,楼主有移植文档吗?

附件是LeaningGUI简易移植文档。

LearningGUI_port.pdf

157.68 KB, 下载次数: 77

LearningGUI简易移植文档

回复

使用道具 举报

5

主题

27

回帖

42

积分

新手上路

积分
42
 楼主| 发表于 2019-2-3 10:18:00 | 显示全部楼层
learninggui2 发表于 2019-2-3 10:08
附件是LeaningGUI简易移植文档。

在MCU移植时,需要注意一点:需要将栈大小设置为2k到4k(1k是不够,会死机的)。如果是Window版,则需要设置堆大小,占用堆大小,与同时建立的控件相关,每个控件大概占用0.6k的堆,所以 32k堆,对于绝大数应用是足够的。这点,在简易移植文档中没有提及到。
回复

使用道具 举报

5

主题

27

回帖

42

积分

新手上路

积分
42
 楼主| 发表于 2019-2-3 10:42:49 | 显示全部楼层
taobaofarmer 发表于 2019-2-2 23:14
移植需要填充打点函数,画线函数,填充函数,这几个函数都要自己实现?emWin只需要自己提供打点函数就行的

LearningGUI是一种通用嵌入式GUI库,与硬件平台,软件平台无关,是100%纯C代码。所以需要用户实现驱动(显示驱动,键盘驱动,鼠标驱动等等,将来的发布版本,还需要用户实现文件系统驱动,日期时间驱动),通过LearningGUI提供的注册函数,将用户驱动注册到LearningGUI系统中。这样做的好处是:GUI应用与外部的硬件,软件完全分离。当用户更换硬件平台(更换MCU, 更换LCD等),或者更换软件平台时,用户只需要修改相应的驱动就可以了,其它的GUI代码可以完全不变。
回复

使用道具 举报

5

主题

27

回帖

42

积分

新手上路

积分
42
 楼主| 发表于 2019-2-3 11:43:05 | 显示全部楼层
taobaofarmer 发表于 2019-2-2 23:14
移植需要填充打点函数,画线函数,填充函数,这几个函数都要自己实现?emWin只需要自己提供打点函数就行的

对于LearningGUI的显示驱动来说,最基本的是两个接口:LCD初始化和打点接口。当然,作为良好的编程习惯,象征性提供LCD关闭接口。其它的,都是作为可选,优化选项。同时,LearningGUI在应用层提供了操作LCD接口机制,比如控制背光,开、关LCD等接口函数,这些作为可选项,需要用户提供相应的驱动接口。对于显示输出,LearningGUI内部处理基本过程是这样的:如果注册了相应的驱动接口,则直接调用用户接口函数指针;如果没有注册相应的驱动接口,则转化成直线或者打点接口输出。比如,当用户画一条300像素单位长水平线时,如果用户注册了画水平线函数的话,则直接调用该接口,一次性输出,速度很快;如果没有注册画水平线接口的话,那么LearningGUI内部需要循环300次调用打点函数,这样速度明显慢了。对于填充矩形情况也是一样的,如果注册该函数,则直接调用填充矩形函数,一次性输出;否则转化成多条水平线输出,如果没有画水平线接口的话,则只能依次打点输出。毫无疑问,一次性填充矩形输出和依次打点输出,速度完全不一样。所以,如果emWin只有打点输出的话,那么单从这点来讲,LearningGUI性能会超过emWin的!
回复

使用道具 举报

5

主题

27

回帖

42

积分

新手上路

积分
42
 楼主| 发表于 2019-2-3 12:08:28 | 显示全部楼层
taobaofarmer 发表于 2019-2-2 23:14
移植需要填充打点函数,画线函数,填充函数,这几个函数都要自己实现?emWin只需要自己提供打点函数就行的

下个LearningGUI发布版本会要求用户提供内存块和显存间相互拷贝,这样显示处理速度会进一步提高。
回复

使用道具 举报

5

主题

27

回帖

42

积分

新手上路

积分
42
 楼主| 发表于 2019-2-3 12:14:11 | 显示全部楼层
下个LearningGUI发布版本主要变动如下:
1 重新组织源码
2 增加T9触摸中英文输入法
3 增加MEMDEV功能
4 修改缺省的控件风格,增加扁平风格的支持。
预计2019年6月30号左右发布。

回复

使用道具 举报

18

主题

321

回帖

375

积分

高级会员

积分
375
发表于 2019-2-3 22:14:44 | 显示全部楼层
谢谢楼主分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-29 16:18 , Processed in 0.229098 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表