素材來源 |Github開源社區(qū)
在嵌入式開發(fā)中,小型 OLED 屏幕廣泛應(yīng)用于智能設(shè)備、物聯(lián)網(wǎng)終端等場景。然而,如何在有限的資源下實現(xiàn)流暢的 UI 交互,是開發(fā)者面臨的一大挑戰(zhàn)。MiaoUI 便是一款專為單色 OLED 設(shè)計的輕量級菜單 UI 框架,基于 u8g2,采用 C 語言 編寫,具備流暢動畫、雙向鏈表結(jié)構(gòu)等特性,讓你的設(shè)備 UI 更加直觀、美觀。
讓你的嵌入式設(shè)備擁有更絲滑的 UI 體驗,從 MiaoUI 開始!
開源倉庫:https://github.com/JFeng-Z/MiaoUI
一、MiaoUI 主要特點
? 多樣化的菜單類型:支持 列表類菜單 和 圖標(biāo)類菜單,滿足不同應(yīng)用場景。? 流暢動畫效果:內(nèi)置 非線性動畫,可動態(tài)打斷,提升用戶體驗。? 靈活的自定義功能:支持菜單項自定義,列表與圖標(biāo)菜單可靈活嵌套。? 兼容 RTOS:可用于實時操作系統(tǒng)(RTOS)環(huán)境(需測試)。
二、核心功能亮點
智能文字處理:超長標(biāo)題可自動滾動顯示,避免內(nèi)容截斷。 參數(shù)調(diào)節(jié)支持:內(nèi)置 float、int、bool 類型數(shù)據(jù)調(diào)整功能。 交互增強:支持列表 單選框,動態(tài)顯示只讀數(shù)據(jù),支持循環(huán)或單次執(zhí)行自定義功能。 數(shù)據(jù)可視化:提供 波形顯示 和 文本顯示 功能,增強數(shù)據(jù)表達能力。 任務(wù)狀態(tài)反饋:運行完成后自動彈出提示窗口,提高人機交互體驗。
三、資源占用情況
ROM 占用:約 24KB(最小化配置,僅含一項菜單項)。 RAM 占用:約 3.1KB,適用于資源受限的嵌入式設(shè)備。
四、項目結(jié)構(gòu)概覽
core/ —— UI 繪制的核心代碼 examples/ —— 示例代碼(支持主流STM32、ESP32等平臺) fonts/ —— 字體庫 display/ —— 屏幕驅(qū)動 indev/ —— 輸入設(shè)備驅(qū)動 widget/ —— 各類 UI 控件(參數(shù)控件、文本顯示、波形顯示等)
五、如何使用 MiaoUI?
1?? 移植 u8g2 庫:在 ui_conf.h 中配置 屏幕參數(shù)(分辨率、字體、圖標(biāo)大小等)2?? 構(gòu)建菜單:在 ui_conf.c 中定義你的菜單結(jié)構(gòu)和交互邏輯3?? 編譯運行:在 STM32 或 ESP32 平臺上編譯運行,調(diào)試 UI 效果詳細流程請參考:https://github.com/JFeng-Z/MiaoUI
六、未來開發(fā)計劃
支持更多分辨率的 OLED 屏幕,提升兼容性。 完善 RTOS 適配,擴展應(yīng)用場景。 加入 Flash 文件系統(tǒng),支持存儲與讀取功能。
七、加入MiaoUI社區(qū)
如果你對 MiaoUI 感興趣,歡迎訪問 GitHub 項目主頁 進行 下載、討論 或 貢獻代碼。你可以提交 Issue 反饋問題,也可以加入 開發(fā)者社群 共同完善這個輕量級 UI 框架!
- u8g2庫: https://github.com/olikraus/u8g2github用戶 morepray: https://github.com/morepray/MorepUI圖標(biāo)庫: https://github.com/hugeicons/hugeicons-react圖片取模工具:https://javl.github.io/image2cpp/