0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

CW32生态社区 来源:CW32生态社区 作者:CW32生态社区 2025-12-29 13:12 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

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

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

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

wKgZPGlSDaaABcnqAAEb7gMGKIA045.jpgwKgZO2lSDaaAVpKsAAGmzmZKVJM983.jpg

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

wKgZPGlSDaeAa_lmAACX6PJY3Iw184.jpg

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

wKgZO2lSDaeARBZ5AABcOBWOzvU235.jpg

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

wKgZPGlSDaeAN8iAAACMHLJJXb0809.jpgwKgZO2lSDaeAC_rnAADhoDLSZR4122.jpg

展示一下OLED屏幕

wKgZPGlSDaiAek0RAAHNYDtJIjY143.jpg

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

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

wKgZO2lSDamAf6W5AABYAInehW4258.jpg

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

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

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

wKgZPGlSDamAbWdXAACEfLzRYNo122.jpg

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

wKgZO2lSDamALvCXAACwVitKzAI714.jpgwKgZPGlSDaqAHR98AABCXuOvt7M068.jpg

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

wKgZO2lSDaqABK03AADNkNHNCJk904.jpg

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

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

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

wKgZPGlSDaqAa-WOAABroz9MSiU315.jpg

wKgZO2lSDaqAXxDfAAEP7pEO1ss079.jpg

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

wKgZPGlSDauARLvsAABK5liFDXQ953.jpg

wKgZO2lSDauAH6FHAAGBvBAMMN0093.jpg

下方是粉丝网友的复刻

wKgZPGlSDayAduVmAABWEPwDp1k632.jpg

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

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

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

wKgZO2lSDayADOJjAAAk8urjxD4013.jpg

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

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

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

wKgZPGlSDayAIUA9AAAX0NzeMoQ685.jpg

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

wKgZO2lSDayAW9IiAAD9UAj_bm0379.jpg

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

wKgZPGlSDa2AMYFaAAAdovUy3l4397.jpg


审核编辑 黄宇

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

    关注

    3

    文章

    699

    浏览量

    44033
  • 图形库
    +关注

    关注

    0

    文章

    22

    浏览量

    9244
  • CW32
    +关注

    关注

    1

    文章

    326

    浏览量

    1999
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    OpenHarmony开源GPUMesa3D适配说明

    接口。 OpenGL(Open Graphics Library) 开放图形,是用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口(仅定义了接口及规范,没有实现)。OpenGL的
    发表于 12-25 11:38

    开源图形语言

    有没有开源的Labview(类似的图形语言),而且跨平台的???
    发表于 11-03 10:40

    LittlevGL开源图形有哪些特性

    LittlevGL是什么?LittlevGL开源图形有何功能?LittlevGL开源图形有哪
    发表于 11-05 09:18

    Open Harmony如何接入开源图形驱动呢

    Open Harmony如何接入开源图形驱动呢?在OpenHarmony上使能开源GPU
    发表于 03-02 06:03

    开源图形驱动在OpenHarmony上的使用和落地

    的小厂商无法获得闭源GPU厂商的支持,导致视觉流畅体验较差,限制了非常OpenHarmony产品的商用,在一定程度上也阻碍了OpenHarmony生态的推广。 02►开源图形驱动架构介绍 由于从驱动角度
    发表于 08-31 18:07

    TI StellarisWare图形使用指南

    TI StellarisWare图形使用指南
    发表于 10-29 10:29 3次下载
    TI StellarisWare<b class='flag-5'>图形</b><b class='flag-5'>库</b>使用指南

    基于DirectFB和Cairo的图形处理

    Direct FB是一个提供硬件图形加速、输入设备处理抽象并集成了透明功能窗体系统和显示层处理的开源。通过对底层硬件不支持的图形操作以回
    发表于 02-07 13:56 2次下载
    基于DirectFB和Cairo的<b class='flag-5'>图形</b>处理

    如何使用Microchip图形中的控件

    使用Microchip图形中的控件方法说明。
    发表于 05-10 11:27 30次下载

    Microchip图形与PIC单片机

    Microchip图形与PIC单片机Microchip图形与PIC单片机Microchip图形
    发表于 11-16 13:36 16次下载
    Microchip<b class='flag-5'>图形</b><b class='flag-5'>库</b>与PIC单片机

    STemwin图形移植与运用

    前言:STemwin图形界面比较吃内存的,一般跑图形界面都需要配一块SRAM,M3系列官方推荐频率是72MHZ(当前也是可以超频的),界面不是非常复杂,刷新要求不是特别高的情况下,
    的头像 发表于 02-28 14:09 1.3w次阅读
    STemwin<b class='flag-5'>图形</b><b class='flag-5'>库</b>移植与运用

    littleVGL开源图形的主要特性与移植过程

    LVGL(Light and Versatile Graphics Library)是一个免费的开源图形,提供创建具有易于使用的图形元素、漂亮的视觉效果和低内存占用的嵌入式 GUI
    的头像 发表于 07-10 16:29 7197次阅读

    选机开源分享

    电子发烧友网站提供《选机开源分享.zip》资料免费下载
    发表于 10-27 17:12 0次下载
    <b class='flag-5'>色</b>选机<b class='flag-5'>开源</b>分享

    使用7LED开源

    电子发烧友网站提供《使用7LED开源.zip》资料免费下载
    发表于 11-15 10:46 0次下载
    使用7<b class='flag-5'>色</b>LED<b class='flag-5'>开源</b>

    芯原股份与开源图形LVGL达成战略合作

    芯原股份 (芯原,股票代码:688521.SH) 今日宣布与嵌入式系统领域领先的开源图形LVGL达成战略合作,在LVGL中支持芯原的低功耗3D和VGLite 2.5D GPU技术。
    的头像 发表于 11-29 09:20 1607次阅读

    Stellaris图形用户指南

    电子发烧友网站提供《Stellaris图形用户指南.pdf》资料免费下载
    发表于 12-23 16:19 1次下载
    Stellaris<b class='flag-5'>图形</b><b class='flag-5'>库</b>用户指南