分享OLED三级菜单框架(源码),本程序在ALIENTEK MiniSTM32开发板验证 ,更新到2011102

2019-07-21 01:30发布

因为项目中的OLED有多级菜单,所以不得不研究一下,经过一天时间的测试,OLED三级菜单框架做好了。和大家分享一下。我用的是自己的OLED屏,大家可以改成开发板的屏,改一下OLED初始化就可以了,因为只是框架,大家可以加入自己的东西,反正我的项目还在改新中。
因为开发板上的按键有限所以我用了一个跳线PA14(选择/退出),PA15(上翻),PA13(下翻) , 第一级选择语言,第二级进入界面,第三级进入功能。在功能中,我在做了英文的,其实中文的也一样的。呵
 


更新说明:程序中加了P12(退出),程序只有两个分支,English , 中文, 现在两个分支都做到了三级菜单,





程序更新说明:之前发现显示有些闪,程序中有BUG,经过一段时间的测试后发现不应该在每一次换屏后才清屏,而应该是按下按键后就清屏,现在程序改过来后屏不闪了。还有就是控制口换成了PC6, PC7, PC8, PC9, 按键换成了B5,PA8,PA11,PA12





友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
49条回答
葱花鱼
2019-07-24 12:10
谢谢楼主了,我在做菜单的时候也遇见相同的问题,我是跳转至一个空循环的界面,看了楼主的解决方法,豁然开朗啊!
代码如下:
Menu_table table[20]=

  // Index    
  // | UP
  // | | DOWN
  // | | | ENTEL
  // | | | | BACK
  // | | | | | 功能函数
  // | | | | |     | 
    {0,0,1,0,0,(*MainMenu)},        // 第一级 主界面
{1,1,2,8,0,(*MainMenu1)},       // 第一级 选择设置日期和时间选项
{2,1,3,14,0,(*MainMenu2)},       //第一级 选择读文件选项
{3,2,3,3,0,(*MainMenu3)},       // 第一级 选择绘制曲线选项
{4,0,1,0,0,(*Kong)},     // 消除主界面部分 清屏时闪烁
{5,1,2,8,0,(*Kong)},          // 消除主界面1 清屏时闪烁
{6,1,3,14,0,(*Kong)},          // 消除主界面2 清屏时闪烁
{7,2,3,3,0,(*Kong)},      // 消除主界面3 清屏时闪烁
{8,8,9,8,1,(*SetDateTime)},     // 第二级 设置日期和时间
{9,9,10,11,8,(*SetDateTime1)},  // 第二级 选择设置日期选项
{10,9,10,12,8,(*SetDateTime2)}, // 第二级 选择设置时间选项
{11,11,11,11,9,(*SetDate)},     // 第三级 设置日期界面
{12,12,12,12,10,(*SetTime)},    // 第三级 设置时间界面    
{13,8,9,8,1,(*Kong)},     // 消除设置日期和时间界面 部分清屏时闪烁
{14,14,14,14,2,(*ReadDir)},     // 读取根目录文件夹名称
{15,14,14,14,2,(*Kong)},        // 消除读取根目录文件夹名称界面  部分清屏时闪烁
};

还是LZ高明,使得编程简单很多,多谢啦!

一周热门 更多>