多按键多界面二维数组表驱动设计

简介: 多按键多界面二维数组表驱动设计

键盘是我们经常能在嵌入式产品上看到的输入设备之一。

640.png

一般情况下,键盘通常会有指定的按键码。根据用户按下的按键来执行一些用户想要执行的功能。因此,这种模式就可以通过switch语句来进行处理。但是,如果当我们设计的应用程序上拥有很多个界面的时候,有些按键只有在特定的界面上才生效的情况下,这时候使用函数指针则会比switch语句更为优雅。在这种情况下,推荐使用函数指针的二维数组的形式来实现,以下是一个很好的例子:

#define PAGE_NUMBER 12
#define KEY_NUMBER  5
int function_f1_op(void);
int function_f2_op(void);
int function_f3_op(void);
int function_f4_op(void);
...
int function_null_op(void);
int function_menu_op(void);
/*跳转表定义*/
static int (*const jump_table[page][key])(void) = 
{
    {function_f1_op, function_f2_op, function_f3_op, function_f4_op},
    {function_f5_op, function_f6_op, function_f7_op, function_f8_op},
 ...
    {function_esc_op, function_enter_op, function_menu_op ..., function_tab_op}
};
/*按键处理函数*/
int key_handler(uint8_t page,uint8_t key)
{
    assert (key  < KEY_NUMBER);
    assert( page < PAGE_NUMBER);
    return (*jump_table[page][key])(); 
}


目录
相关文章
|
C语言
实现一个简单的事件驱动处理框架
实现一个简单的事件驱动处理框架
340 0
|
JSON 人工智能 自然语言处理
Prompt进阶系列4:LangGPT(构建高性能Prompt实践指南)--结构化Prompt
Prompt进阶系列4:LangGPT(构建高性能Prompt实践指南)--结构化Prompt
|
传感器 数据采集 监控
上千个完整设计的单片机、8086、STM32制作教程和资料-转发分享
在网上收集了接近上千个完整设计的单片机、8086、STM32制作教程和资料-转发分享(涵盖了大部分的毕设课设题目),学习单片机的最好教程,也可以作为帮助大家在做电子课设毕设时有利的帮助,可以从以下百度网盘下载(按照编号下载)。
2836 0
上千个完整设计的单片机、8086、STM32制作教程和资料-转发分享
【STM32】引脚GPIO批量操作数组&for循环流水灯
【STM32】引脚GPIO批量操作数组&for循环流水灯
1327 0
|
存储 固态存储
用阿里云“无影”搭建《黑神话:悟空》电脑环境
《黑神话:悟空》是一款高质国风游戏,对硬件有一定要求,例如64位系统、Intel Core i5-8400或AMD Ryzen 5 1600处理器、NVIDIA GeForce GTX 1060 6GB或AMD Radeon RX 580 8GB显卡以及16GB RAM等。阿里云无影是一种云电脑服务,用户可通过无影盒子连接云端电脑实现远程办公或娱乐,主要面向企业用户降低成本并提供便捷方案。无影云电脑提供含基本配置与功能的试用版,允许用户免费体验一个月,以便评估产品适用性。试用涉及的具体步骤包括访问阿里云免费试用页面、配置相关信息如时长用尽策略及分配用户邮箱等,配置完成后可立即购买开始体验。
1759 3
用阿里云“无影”搭建《黑神话:悟空》电脑环境
|
安全 前端开发 Java
10:基于Servlet模拟用户登录功能的实现与解析-Java Web
10:基于Servlet模拟用户登录功能的实现与解析-Java Web
916 3
|
网络协议
攻防世界---misc---神奇的Modbus
攻防世界---misc---神奇的Modbus
|
测试技术
开源按键组件MultiButton支持菜单操作(事件驱动型)
开源按键组件MultiButton支持菜单操作(事件驱动型)
883 1
开源按键组件MultiButton支持菜单操作(事件驱动型)
|
传感器 安全 物联网
一个非常优秀的跨平台物联网开发常用的网络请求库libcurl
一个非常优秀的跨平台物联网开发常用的网络请求库libcurl
415 1
|
存储 算法 物联网
MCU串口命令解析器的实现
MCU串口命令解析器的实现
400 1