MiaoUI/README.md

34 lines
2.2 KiB
Markdown
Raw Normal View History

2023-11-29 10:04:40 +00:00
# MultMenu
2024-04-06 18:31:40 +00:00
这是一个用于单色OLED屏幕的单片机多级菜单采用双向链表结构移植方便、在容量足够的情况下可无限扩展。
2024-04-11 15:58:00 +00:00
- 菜单支持类型有:
2024-06-21 14:24:29 +00:00
1. PARENTS内含子菜单项
2024-06-24 05:29:40 +00:00
2. LOOP_FUNCTION循环运行某项自定义功能
3. ONCE_FUNCTION 单次运行某项自定义功能
2024-06-21 14:24:29 +00:00
4. SWITCH开关型
5. DATA可调参数型
2024-06-24 05:28:27 +00:00
6. _TEXT_:文本型,用于显示某些文本内容
7. RETURN: 用于上级返回
2024-06-21 05:52:28 +00:00
- 全局使用非线性动画类PID控制器
2024-06-22 04:01:26 +00:00
在菜单数据结构上参考开源项目https://github.com/morepray/MorepUI 感谢!
2024-04-06 18:31:40 +00:00
# 移植准备
2024-06-21 14:28:30 +00:00
1. 在menuConfig.h中配置你的屏幕分辨率与菜单字体。
2. 往dispDirver.c中替换你的屏幕驱动亦可使用example中的移植的u8g2库。
2024-06-21 14:30:39 +00:00
3. 在Menu_State BtnScan(void)函数中放入你的按键扫描程序。
2024-06-22 04:02:01 +00:00
4. 在image.c中写入你需要显示的项目logo否则图形界面的logo为预设logo。推荐开源图标库[https://github.com/hugeicons/hugeicons-react](https://github.com/hugeicons/hugeicons-react),图片取模工具:[https://javl.github.io/image2cpp/](https://github.com/javl/image2cpp)。
2024-06-24 05:28:27 +00:00
5. 在parameter.c中建立需要的数据类并填入想控制的变量、变量名、上下限、步进值。
6. 在text.c中建立需要的文本类填入想显示的文本、对应字体、字体高度、字体宽度。
7. 在新增菜单项时在menu.c中定义菜单所在页面(page)和菜单项(item)并建立所需要的元素类数据、开关量、文本然后在Craete_MenuTree中通过AddPage、AddItem加入。
8. 建立一个xMenu类型的全局结构体
9. 将Menu_Init和Menu_Loop放入你的程序中若使用RTOS建议给予10ms运行周期
2024-04-06 18:31:40 +00:00
# Example
2024-06-22 04:02:57 +00:00
基于STM32F103C8T6使用硬件I2C2驱动0.96寸OLED(SSD1306),按键为串口虚拟按键。
2024-04-06 18:31:40 +00:00
其中:
2024-04-21 08:09:27 +00:00
- 0x01为上移按键
- 0x02为下移按键
- 0x03为确认按键
2024-04-06 18:31:40 +00:00
# 效果如下
2024-03-31 15:39:32 +00:00
![image](https://github.com/JFeng-Z/MultMenu/blob/master/Image/img1.png)
![image](https://github.com/JFeng-Z/MultMenu/blob/master/Image/img2.png)
2024-06-21 14:30:39 +00:00
- 视频演示地址https://b23.tv/TOwmuKL
2024-06-28 10:41:01 +00:00
# 最后
2024-06-28 10:41:27 +00:00
项目还在优化中如果有遇到问题欢迎issue