【开源】WeGUI高效多色图形库

描述

以下文章内容由CW32生态社区用户口服提供:

https://github.com/KOUFU-DIY/WeGui_RGB

WeGui是以高执行效率为特色以单色驱动为主的高效图形库, 功能与U8G2类似, 支持移植到各个平台, 支持OLED, 同时拓展支持了彩色屏。

本WeGUI已适配了武汉芯源CW32L012C8T6,DMA驱动后续会做增加。

图形库图形库

WeGui内置高效SPI的TFT驱动, 不仅支持单色, 而且支持多色, 内置了1位色2位色和3位色可选, 颜色主题可以自定义。

图形库

WeGui除了支持点线面和文字的支持外, 内置了简易的链表多级菜单demo

图形库

WeGui成立于2025年6月份, 起初WeGui只支持OLED屏幕, 随着作者更新, 现已支持各类TFT和灰度OLED, 在.h文件里轻松切换。

图形库图形库

展示一下OLED屏幕

图形库

随着使用屏幕分辨率的增大, 我们其实更关心RAM是否足够

目前 WeGui现已支持"全屏缓存"和"页缓存", 页缓存占用极低, 最低支持设置1行的缓存, 当然缓存越大刷新速度越快, 页缓存功能轻松应对各类大屏TFT, 在.h文件轻松切换xii安村驱动类型。

图形库

为了快速上手, 作者对市面上CW32L012等几个品牌对各类屏幕做了大量的适配, 真正做到拿来即用, 驱动波形连续高效,有兴趣的可以更深入了解。

为了方便驱动学习, 作者也更新了直驱demo,

驱动代码直观,方便理解运作原理, 若无需菜单demo的也可以手搓直驱

图形库

同时, 作者也制作了上位机, 轻松对UTF8文字进行取模

图形库图形库

作者悉心呵护的GUI, 也有自己的开发板, 因CW32L012C8与其他主流C8T6芯片都是PIN对PIN的, 可以直接通过锁紧座更换模块。

图形库

应网友要求, 现已支持了编码器,

高效的旋转编码器的代码, 只需1ms滴答查询即可, 基本不会有漏识别的问题, 简单高效的编码器代码效果如下

开发板其他芯片版本已经有了蜂鸣器可以播放一首周杰伦的《晴天》

图形库

图形库

开发板子上还支持了外挂falsh,作者本意是播放视频, 同时也做了一套视频压缩RLE算法取模工具,压缩后体积极低, 色彩量少的图片体积能压缩至本身的20%以下, 工具目前开源免费,也在逐步完善flash功能中,过后更新到GUI的demo上。

图形库

图形库

下方是粉丝网友的复刻

图形库

WeGui名称来源于作者在B站投稿了一些手搓单色屏幕gui的玩法的, 被网友催更开源,本着开源精神,在myGUI,meGUI,yourGUI各类主谓宾定语中选择了WeGui。

作者为爱发电,免费开源,欢迎测试反馈。

https://github.com/KOUFU-DIY/WeGui_RGB

图形库

下面介绍一下作者在适配WeGUI中使用CW32L012中发现的“彩蛋”

一般在低端小RAM单片机中,Flash指令读取是需要时间的,如果运行在24MHz以下,FLASH取指令可以做到0等待,在48MHz以下一般需要有1周期等待,72MHz要有2等待,依次类推,包括STM32F103也是需要Flash等待,因此FLASH读指令等待是非常占用运行时。

高端一些的单片机会把Flash读到RAM去运行,而消费级芯片往往没有如此大的RAM空间。

图形库

为了解决这个代码运行效率的问题, CW32L012在硬件中内置了“指令预取”的黑科技, 原理是提前往flash后读取一片指令,当指令读连续的时候,运行效率约等于0等待。

图形库

开启指令预取之后,FPS飙到了123Hz!!有没有细心的玩家发现了该“彩蛋”?

图形库


审核编辑 黄宇
 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分