LCD 多层菜单

本文介绍了如何使用结构体定义LCD菜单的基本元素,包括菜单项和菜单结构体,并详细阐述了菜单数据类型的定义以及如何设计菜单结构。此外,还讨论了菜单显示函数和按键处理函数的实现,提供了一个实现菜单功能的代码示例。
摘要由CSDN通过智能技术生成

基本结构体定义

菜单项定义

struct menu
{
    uint8_t range_from; //当前显示的项开始序号
    uint8_t item_count;//项目总数
    uint8_t selected;//当前选择项
    struct menu_tag *menu_tag;
    struct menu *sub_menus[MAX_SUB_MENU];//子菜单
    struct menu *parent;//上级菜单 ,如果是顶级则为null
};

菜单结构体定义

我们使用此结构体来布局菜单结构

struct menu_tag
{
    uint8_t menu_index;//菜单层数
    uint8_t item_index_as_item;//作为子菜单项显示字符
    uint8_t item_index_as_title;//作为标题时显示字符
    func func_menu;
};

数据类型定义

设计菜单结构

const uint8_t MENU_ITEM[][12] =
{
    "",//0
    "主菜单",//1
    "1.语言设置",//2
    "2.画面设置",//3
    "3.声音设置",//4
    "4.网络设置",//5
    "5.其他设置",//6
    "6.关于",//7
    "语言设置",//8
    "1.中文",//9
    "2.英文"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值