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
|
|
|
|
- 菜单支持类型有:
|
|
|
|
|
1. PARENTS 内含子菜单项
|
|
|
|
|
2. LOOP_FUNCTION: 循环运行某项功能
|
|
|
|
|
3. ONCE_FUNCTION: 单次运行某项功能
|
|
|
|
|
4. SWITCH: 开关型
|
|
|
|
|
5. DATA: 可调参数型
|
|
|
|
|
- 光标移动使用非线性动画,菜单指示器使用线性动画。
|
2024-04-11 16:00:11 +00:00
|
|
|
|
在菜单数据结构上参考开源项目:https://github.com/morepray/MorepUI
|
2024-04-06 18:31:40 +00:00
|
|
|
|
# 移植准备
|
2024-04-11 15:58:45 +00:00
|
|
|
|
- 往dispDirver.c中替换你的屏幕驱动,亦可使用example中的移植好的u8g2库。
|
|
|
|
|
- 需在Menu_State BtnScan(void)函数中放入按键扫描程序。
|
|
|
|
|
- 在新增菜单项时,应在menu.c中定义菜单所在页面(page)和菜单项(item),然后在Menu_Team中通过AddPage、AddItem加入。
|
|
|
|
|
- 最后将Menu_Init()和Menu_Task()放入你的程序中。
|
2024-04-06 18:31:40 +00:00
|
|
|
|
# Example
|
|
|
|
|
基于STM32F103C8T6,使用硬件I2C2驱动0.96寸OLED(SSD1306),按键为串口虚拟按键
|
|
|
|
|
其中:
|
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
|
|
|
|

|
|
|
|
|

|