[STM32F1]

一个开源小型GUI移植到STM32F103上

[复制链接]
32129|134
手机看帖
扫描二维码
随时随地手机跟帖
WoodData|  楼主 | 2017-10-27 11:39 | 显示全部楼层 |阅读模式
偶然间发现的一个小型GUI,看了GUI原作者的展示,效果不错,因此尝试移植到自己STM32F103的开发板上了。说他是小型的,一点不假。只有2个文件ugui.c和ugui.h,因为是小型的所以内容上就比较简单,此GUI主要就是实现了窗口控件、Button控件、CheckBox控件、TextBox控件、Image控件这几个,支持触摸操作。    该GUI的官方地址:http://embeddedlightning.com/ugui/
                        https://github.com/achimdoebler/UGUI
    包含文件:主要就是ugui.c和ugui.h
    移植也非常简单,先新建ugui_port.c文件,在里面实现LCD的画点、画线和单色填充函数。如下:
    然后main函数中初始化GUI。如下:
    接着是创建窗口以及窗口内控件。然后调用初始显示哪个窗口。如下:
    注意此时LCD还未显示绘制窗口,继续往下。要显示窗口必须在主循环或者定时中断中调用  UG_Update()  LCD显示刷新函数才能在屏幕上看到内容,否则屏幕上什么都不显示。还有触摸坐标更新在主循环或者定时中断中调用。我是在main主循环中调用屏幕更新和触摸更新的。如下:
   还有就是实现窗口内控件的回调点击处理函数。 至此基本就完成了GUI的移植。窗口控件的回调函数如下:

    好了,移植完成了。现在来看看移植的效果吧。下面来几幅图欣赏一下:








工程源码:
TouchPanel_uggui.zip (1.32 MB)
评论
pingis58 2020-1-6 17:18 回复TA
MARK,轻便不错。 
Yuangungun 2019-1-12 12:05 回复TA
为啥一下大小就改变了 
WoodData 2018-10-29 21:35 回复TA
https://bbs.21ic.com/icview-2562462-1-1.html 已添加中文字库。可参考方便添加其他字库。 
stm32jy| | 2017-10-27 12:08 | 显示全部楼层
感谢分享,现在只能写出静态的TFT触摸的还不会写。

使用特权

评论回复
WoodData|  楼主 | 2017-10-27 14:20 | 显示全部楼层
stm32jy 发表于 2017-10-27 12:08
感谢分享,现在只能写出静态的TFT触摸的还不会写。

慢慢学,参考例程里面怎么实现的,看懂了照着做就会了。

使用特权

评论回复
mmuuss586| | 2017-10-27 16:46 | 显示全部楼层

不错,谢谢分享;

使用特权

评论回复
天灵灵地灵灵| | 2017-10-27 21:51 | 显示全部楼层
听说过,可以创建简单的对话框。

使用特权

评论回复
antusheng| | 2017-10-27 22:25 | 显示全部楼层
这个占用资源多不多?

使用特权

评论回复
gyh974| | 2017-11-2 18:47 | 显示全部楼层

使用特权

评论回复
蓝色天使211| | 2017-11-3 09:00 | 显示全部楼层
这个东西安富莱早几个月就登过,楼主移植不错。

使用特权

评论回复
mmuuss586| | 2017-11-3 09:08 | 显示全部楼层

厉害,牛人啊

使用特权

评论回复
WoodData|  楼主 | 2017-11-3 10:49 | 显示全部楼层
蓝色天使211 发表于 2017-11-3 09:00
这个东西安富莱早几个月就登过,楼主移植不错。

谢谢夸奖

使用特权

评论回复
WoodData|  楼主 | 2017-11-3 10:50 | 显示全部楼层

谢谢版主支持

使用特权

评论回复
STARM| | 2017-11-4 08:21 | 显示全部楼层
http://www.gl.littlev.hu

The LittlevGL is a free and open source graphics library to create Graphical User Interfaces (GUI) on TFT, LCD or monochromedisplays using microcontroller based embedded systems.
Transparency, anti-aliasing and smooth animations can be used with no double buffering so typically no external memories are required.
The graphics library is written in C and it is completely hardware independent. You can even run it in a PC simulator without any embedded hardware.
Capture_0900.jpg

使用特权

评论回复
大道至简| | 2017-11-4 21:08 | 显示全部楼层
st 官方不是有 GUI 控件吗? 干嘛要用这种非正统。。。

使用特权

评论回复
denike| | 2017-11-9 15:23 | 显示全部楼层
mark收藏学习一下!

使用特权

评论回复
PublicC| | 2018-1-12 14:30 | 显示全部楼层
楼主,请问有没有试过在uGUI中添加中文字库呢?最近在搞lcd屏,往ugui库加中文不知道有什么好的方法,求解~~~

使用特权

评论回复
评论
1949zbh 2018-10-29 10:07 回复TA
同问 
WoodData|  楼主 | 2018-1-12 15:33 | 显示全部楼层
本帖最后由 WoodData 于 2018-1-13 10:28 编辑
PublicC 发表于 2018-1-12 14:30
楼主,请问有没有试过在uGUI中添加中文字库呢?最近在搞lcd屏,往ugui库加中文不知道有什么好的方法 ...

没加过,仔细看了它的字库显示,要增加中文字库需要对内部进行修改。后面有空了会对其进行修改一下增加一些功能。

使用特权

评论回复
liubo0702| | 2018-1-19 10:30 | 显示全部楼层
很给力,技术型人才

使用特权

评论回复
caijie001| | 2018-3-2 23:48 | 显示全部楼层
感谢分享,正在学STemWin

使用特权

评论回复
一路向北lm| | 2018-3-3 16:33 | 显示全部楼层
挺不错的,

使用特权

评论回复
zhuotuzi| | 2018-3-4 10:54 | 显示全部楼层
这个简单的用起来还是挺好的啊

使用特权

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

本版积分规则

115

主题

4268

帖子

25

粉丝