以下文章內容由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!!有沒有細心的玩家發現了該“彩蛋”?

審核編輯 黃宇
-
GUI
+關注
關注
3文章
697瀏覽量
43455 -
圖形庫
+關注
關注
0文章
21瀏覽量
9216 -
CW32
+關注
關注
1文章
299瀏覽量
1843
發布評論請先 登錄
OpenHarmony開源GPU庫Mesa3D適配說明
開源圖形驅動在OpenHarmony上的使用和落地
基于DirectFB和Cairo的圖形處理
STemwin圖形庫移植與運用
【開源】WeGUI高效多色圖形庫
評論