点击上方“嵌入式应用研究院”,选择“置顶/星标公众号”
干货福利,第一时间送达!
排版 | 嵌入式应用研究院
素材来源 |Github开源社区
在嵌入式开发中,小型 OLED 屏幕广泛应用于智能设备、物联网终端等场景。然而,如何在有限的资源下实现流畅的 UI 交互,是开发者面临的一大挑战。MiaoUI 便是一款专为单色 OLED 设计的轻量级菜单 UI 框架,基于 u8g2,采用 C 语言 编写,具备流畅动画、双向链表结构等特性,让你的设备 UI 更加直观、美观。
🎯 让你的嵌入式设备拥有更丝滑的 UI 体验,从 MiaoUI 开始!
开源仓库:https://github.com/JFeng-Z/MiaoUI
一、MiaoUI 主要特点
✅ 多样化的菜单类型:支持 列表类菜单 和 图标类菜单,满足不同应用场景。
✅ 流畅动画效果:内置 非线性动画,可动态打断,提升用户体验。
✅ 灵活的自定义功能:支持菜单项自定义,列表与图标菜单可灵活嵌套。
✅ 兼容 RTOS:可用于实时操作系统(RTOS)环境(需测试)。

二、核心功能亮点
🔹 智能文字处理:超长标题可自动滚动显示,避免内容截断。
🔹 参数调节支持:内置 float、int、bool 类型数据调整功能。
🔹 交互增强:支持列表 单选框,动态显示只读数据,支持循环或单次执行自定义功能。
🔹 数据可视化:提供 波形显示 和 文本显示 功能,增强数据表达能力。
🔹 任务状态反馈:运行完成后自动弹出提示窗口,提高人机交互体验。

三、资源占用情况
💾 ROM 占用:约 24KB(最小化配置,仅含一项菜单项)。
📂 RAM 占用:约 3.1KB,适用于资源受限的嵌入式设备。
四、项目结构概览
📂 core/ —— UI 绘制的核心代码
📂 examples/ —— 示例代码(支持主流STM32、ESP32等平台)
📂 fonts/ —— 字体库
📂 display/ —— 屏幕驱动
📂 indev/ —— 输入设备驱动
📂 widget/ —— 各类 UI 控件(参数控件、文本显示、波形显示等)
五、如何使用 MiaoUI?
1️⃣ 移植 u8g2 库:在 ui_conf.h 中配置 屏幕参数(分辨率、字体、图标大小等)
2️⃣ 构建菜单:在 ui_conf.c 中定义你的菜单结构和交互逻辑
3️⃣ 编译运行:在 STM32 或 ESP32 平台上编译运行,调试 UI 效果
详细流程请参考:https://github.com/JFeng-Z/MiaoUI
六、未来开发计划
🚀 支持更多分辨率的 OLED 屏幕,提升兼容性。
🚀 完善 RTOS 适配,扩展应用场景。
🚀 加入 Flash 文件系统,支持存储与读取功能。
七、加入MiaoUI社区
如果你对 MiaoUI 感兴趣,欢迎访问 GitHub 项目主页 进行 下载、讨论 或 贡献代码。你可以提交 Issue 反馈问题,也可以加入 开发者社群 共同完善这个轻量级 UI 框架!
u8g2库: https://github.com/olikraus/u8g2
github用户 morepray: https://github.com/morepray/MorepUI
图标库: https://github.com/hugeicons/hugeicons-react
图片取模工具:https://javl.github.io/image2cpp/
往期精彩
工欲善其事,必先利其器-让Vscode调试代码就像IDE一样好用
周计划-嵌入式优质项目分享-《一个基于分层架构实现的MCU系统框架》
从小白到高手:嵌入式软件开发时序图全解析,秒懂电平与时间的关系
一个可用于多设备间的C/C++嵌入式通信协议的设计与实现-SACP协议
开源项目-这个基于STM32开源的DIY炫酷智能手表你值得拥有!
觉得本次分享的文章对您有帮助,随手点[在看]
并转发分享,也是对我的支持。