# MCU Menu Frame **Repository Path**: lojam/MCU_Menu_Frame ## Basic Information - **Project Name**: MCU Menu Frame - **Description**: MCU的菜单框架,使用链表的形式所写,方便移植 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 4 - **Created**: 2024-06-06 - **Last Updated**: 2024-06-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MCU Menu Frame > 一个使用链表所编写的单片机菜单框架 # 使用 * 在`menu_table.h`文件中自行定义相关的菜单页面 * 可以自行新建一个资源文件如`demo.c`以定义一些执行函数 * `menu_init()`: 初始化菜单,添加到初始化函数那里 > note: `main_Menu[]`这个数组一定要有,也就是说一定要有一个主菜单 > > note:数组里面一定要以一个索引为`0`的项结尾,如 ```C {0,"The End", NULL,NULL,NULL} ``` * 在相应的事件中添加处理函数 * * `key_up()`: 向上按钮 * `key_down()`: 向下按钮 * `key_enter()`: 进入所选菜单 * `key_return()`: 返回上一级菜单 ----- `p_Current_Item`: 当前页面当前选项结构体指针,方便调用相应的操作函数 # 移植 > 本原码做了宏定义相关常量,移植起来相对方便 ## 显示器硬件 > `menu_func.h`文件中 * `OLED_SHOW_LINE_START`: 显示器显示范围:其实行数 * `OLED_SHOW_LINE_STOP`: 显示器显示范围:结束函数 * `HIGH_SIGN_OFFSE`: 高亮符号偏移量 # 显示器驱动 * `void OLED_ShowStr(unsigned char x, unsigned char y, unsigned char ch[], unsigned char TextSize)`: ``` //-------------------------------------------------------------- // Prototype : void OLED_ShowChar(unsigned char x, unsigned char y, unsigned char ch[], unsigned char TextSize) // Calls : // Parameters : x,y -- 起始点坐标(x:0~127, y:0~7); ch[] -- 要显示的字符串; TextSize -- 字符大小(1:6*8 ; 2:8*16) // Description : 显示codetab.h中的ASCII字符,有6*8和8*16可选择 //-------------------------------------------------------------- ``` * `void OLED_CLS(void)//清屏` 主要就是适配这两个函数,一个是用来显示字符串的,一个是用来清屏的