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