以下文章內(nèi)容由CW32生態(tài)社區(qū)用戶口服提供:
https://github.com/KOUFU-DIY/WeGui_RGB
WeGui是以高執(zhí)行效率為特色以單色驅(qū)動為主的高效圖形庫, 功能與U8G2類似, 支持移植到各個平臺, 支持OLED, 同時拓展支持了彩色屏。
本W(wǎng)eGUI已適配了武漢芯源CW32L012C8T6,DMA驅(qū)動后續(xù)會做增加。


WeGui內(nèi)置高效SPI的TFT驅(qū)動, 不僅支持單色, 而且支持多色, 內(nèi)置了1位色2位色和3位色可選, 顏色主題可以自定義。

WeGui除了支持點線面和文字的支持外, 內(nèi)置了簡易的鏈表多級菜單demo

WeGui成立于2025年6月份, 起初WeGui只支持OLED屏幕, 隨著作者更新, 現(xiàn)已支持各類TFT和灰度OLED, 在.h文件里輕松切換。


展示一下OLED屏幕

隨著使用屏幕分辨率的增大, 我們其實更關(guān)心RAM是否足夠
目前 WeGui現(xiàn)已支持"全屏緩存"和"頁緩存", 頁緩存占用極低, 最低支持設(shè)置1行的緩存, 當(dāng)然緩存越大刷新速度越快, 頁緩存功能輕松應(yīng)對各類大屏TFT, 在.h文件輕松切換xii安村驅(qū)動類型。

為了快速上手, 作者對市面上CW32L012等幾個品牌對各類屏幕做了大量的適配, 真正做到拿來即用, 驅(qū)動波形連續(xù)高效,有興趣的可以更深入了解。
為了方便驅(qū)動學(xué)習(xí), 作者也更新了直驅(qū)demo,
驅(qū)動代碼直觀,方便理解運作原理, 若無需菜單demo的也可以手搓直驅(qū)

同時, 作者也制作了上位機, 輕松對UTF8文字進行取模


作者悉心呵護的GUI, 也有自己的開發(fā)板, 因CW32L012C8與其他主流C8T6芯片都是PIN對PIN的, 可以直接通過鎖緊座更換模塊。

應(yīng)網(wǎng)友要求, 現(xiàn)已支持了編碼器,
高效的旋轉(zhuǎn)編碼器的代碼, 只需1ms滴答查詢即可, 基本不會有漏識別的問題, 簡單高效的編碼器代碼效果如下
開發(fā)板其他芯片版本已經(jīng)有了蜂鳴器可以播放一首周杰倫的《晴天》


開發(fā)板子上還支持了外掛falsh,作者本意是播放視頻, 同時也做了一套視頻壓縮RLE算法取模工具,壓縮后體積極低, 色彩量少的圖片體積能壓縮至本身的20%以下, 工具目前開源免費,也在逐步完善flash功能中,過后更新到GUI的demo上。


下方是粉絲網(wǎng)友的復(fù)刻

WeGui名稱來源于作者在B站投稿了一些手搓單色屏幕gui的玩法的, 被網(wǎng)友催更開源,本著開源精神,在myGUI,meGUI,yourGUI各類主謂賓定語中選擇了WeGui。
作者為愛發(fā)電,免費開源,歡迎測試反饋。
https://github.com/KOUFU-DIY/WeGui_RGB

下面介紹一下作者在適配WeGUI中使用CW32L012中發(fā)現(xiàn)的“彩蛋”
一般在低端小RAM單片機中,F(xiàn)lash指令讀取是需要時間的,如果運行在24MHz以下,F(xiàn)LASH取指令可以做到0等待,在48MHz以下一般需要有1周期等待,72MHz要有2等待,依次類推,包括STM32F103也是需要Flash等待,因此FLASH讀指令等待是非常占用運行時。
高端一些的單片機會把Flash讀到RAM去運行,而消費級芯片往往沒有如此大的RAM空間。

為了解決這個代碼運行效率的問題, CW32L012在硬件中內(nèi)置了“指令預(yù)取”的黑科技, 原理是提前往flash后讀取一片指令,當(dāng)指令讀連續(xù)的時候,運行效率約等于0等待。

開啟指令預(yù)取之后,F(xiàn)PS飆到了123Hz!!有沒有細心的玩家發(fā)現(xiàn)了該“彩蛋”?

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