"); //-->
1 映射表在串口数据解析中的应用
1.1 数据结构
1.2 指令、函数映射表
1.3 串口解析函数实现
2 映射表在UI设计中的应用
2.1 数据结构
2.2 函数映射表
2.3 定义两个变量保存当前场景和上一个场景
2.4 按下Up按键 跳转到指定场景current_stage的值根据映射表改变
2.5 场景改变后 根据映射表执行相应的函数Handler
typedef struct1.2 指令、函数映射表
{
char CMD[CMDLen];
unsigned char (*cmd_operate)(char *data);
}Usart_Tab;
static const Usart_Tab InstructionList[CMDMax]=1.3 串口解析函数实现
{
{"PWON",PowOn},
{"PWOFF",PowOff},
{"HDCP",HdcpOnOff},
{"/V",QueryKaVersion},
{"EDIDUpgrade",UpdataEDID},
{"Psave",Psave},
{"Precall",Precall},
{"Pclear",Pclear},
};
unsigned char DataAnalysis(char *buf){2 映射表在UI设计中的应用2.1 数据结构
unsigned char i,Result;
char *NEXT=NULL;
for(i=0;i<CMDMax;i++)
{
NEXT=StrCmp(buf,(char*)InstructionList[i].CMD);
if(NEXT!=NULL)
{
usartfuncp=InstructionList[i].cmd_operate;
Result=(*usartfuncp)(NEXT);
}
}
return Result;
}
菜单枚举:
typedef enum
{
stage1=0,
stage2,
stage3,
stage4,
stage5,
stage6,
stage7,
stage8,
stage9,
}SCENE;
数据结构:
typedef struct {2.2 函数映射表
void (*current_operate)(); //当前场景的处理函数
SCENE Index; //当前场景的标签
SCENE Up; //按下Up键跳转的场景
SCENE Down; //按下Down键跳转的场景
SCENE Right; //按下Left键跳转的场景
SCENE Left; //按下Right键跳转的场景
}STAGE_TAB;
STAGE_TAB stage_tab[]={
#. operate Index Up Down Left Right
{Stage1_Handler, stage1, stage4, stage7, stage3, stage2},
{Stage2_Handler, stage2, stage5, stage8, stage1, stage3},
{Stage3_Handler, stage3, stage6, stage9, stage2, stage1},
{Stage4_Handler, stage4, stage7, stage1, stage6, stage5},
{Stage5_Handler, stage5, stage8, stage2, stage4, stage6},
{Stage6_Handler, stage6, stage9, stage3, stage5, stage4},
{Stage7_Handler, stage7, stage1, stage4, stage9, stage8},
{Stage8_Handler, stage8, stage2, stage5, stage7, stage9},
{Stage9_Handler, stage9, stage3, stage6, stage8, stage7},
};2.3 定义两个变量保存当前场景和上一个场景char current_stage=stage1;2.4 按下Up按键 跳转到指定场景current_stage的值根据映射表改变
char prev_stage=current_stage;
current_stage =stage_tab[current_stage].Up;2.5 场景改变后 根据映射表执行相应的函数Handler
if(current_stage!=prev_stage)
{
stage_tab[current_stage].current_operate();
prev_stage=current_stage;
}
文章来源:物联网IoT技术
本文来源网络,免费传达知识,版权归原作者所有。如涉及作品版权问题,请联系我进行删除。
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
Windows CE 开发初步(第一部)
华清远见嵌入式在线视频教程——2、嵌入式系统的选择与开发
嵌入式系统方案设计
华清远见嵌入式在线视频教程——4、基于ARM的嵌入式开发
嵌入式看门狗如何提升系统稳定性
浅谈嵌入式LINUX系统教与学
大家在互相借鉴吧!--嵌入式系统词汇表
大家在互相借鉴吧!--嵌入式系统词汇表
华清远见嵌入式在线视频教程——3、嵌入式Linux开发应用介绍
从COM到SMARC再到OSM:嵌入式计算模块的发展
USB-HOST实时数据采集嵌入式模块的实现
意法半导体出厂中国制造的STM32 MCU
LAN91C111型控制器在嵌入式以太网接口中的应用
华清远见嵌入式在线视频教程——1、走近嵌入式系统
嵌入式操作系统大比拼
TI将边缘AI微控制器更深入地融入嵌入式设计
大家在互相借鉴吧!--嵌入式系统词汇表
米尔亮相德国嵌入式展2026 Embedded World
IAR 扩展了嵌入式开发平台,提供 LTS 服务
大家在互相借鉴吧!--嵌入式系统词汇表
展会预告!米尔邀您相约德国嵌入式展 2026Embedded World
RK3576 + ROS2 SLAM建图与导航实战
第一讲:嵌入式系统概述
嵌入式U盘读写器接口技术和系统设计
陈渝大侠翻译的 uClinux2.6入门
LCD驱动器SD0432与嵌入式系统的接口设计
汽车存储器新突破:8nm128Mb嵌入式MRAM的研发
未来倾向于UFS用于高性能嵌入式闪存
华清远见嵌入式在线视频教程——5、嵌入式Linux移植和u-boot
嵌入式系统的实时数据接口扩展