以下是一个 OLED 菜单功能 C 语言程序框架,大家可以参考扩展:
#include <stdio.h>
#include "oled.h" // OLED 显示屏库
// 菜单项结构体
typedef struct MenuItem {
char *name; // 菜单项名称
void (*function)(); // 菜单项对应的函数指针
} MenuItem;
// 菜单结构体
typedef struct Menu {
char *title; // 菜单标题
MenuItem *items; // 菜单项数组
int count; // 菜单项数量
int current; // 当前选中的菜单项索引
} Menu;
// 菜单项函数
void function1() {
// TODO: 实现菜单项功能
}
void function2() {
// TODO: 实现菜单项功能
}
// 菜单项数组
MenuItem items[] = {
{"菜单项1", function1},
{"菜单项2", function2},
};
// 菜单
Menu menu = {
"菜单标题",
items,
sizeof(items) / sizeof(MenuItem),
0, // 默认选中第一个菜单项
};
// 显示菜单
void show_menu(Menu *menu) {
oled_clear(); // 清空 OLED 显示屏
oled_print(menu->title); // 显示菜单标题
for (int i = 0; i < menu->count; i++) {
if (i == menu->current) {
oled_print("*"); // 当前选中的菜单项前面加上 *
}
oled_print(menu->items[i].name); // 显示菜单项名称
oled_newline(); // 换行
}
}
// 处理菜单项选择
void handle_menu_select(Menu *menu) {
// 执行当前选中的菜单项对应的函数
menu->items[menu->current].function();
}
int main() {
// 初始化 OLED 显示屏
oled_init();
while (1) {
show_menu(&menu); // 显示菜单
// TODO: 处理菜单项选择的用户输入(例如按键事件)
handle_menu_select(&menu); // 处理菜单项选择
}
return 0;
}
以上是一个简单的 OLED 菜单功能 C 语言程序框架,你可以根据实际需求进行修改和扩展。
【最后一个bug】多平台都有更新和发布,大家可以一键三连,关注+星标,不错过精彩内容~~