0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

嵌入式开发:映射表在串口数据解析中的应用

小麦大叔 来源:物联网IoT技术 2023-11-28 10:30 次阅读

目录

1 映射表在串口数据解析中的应用

1.1 数据结构

1.2 指令、函数映射表

1.3 串口解析函数实现

2 映射表在UI设计中的应用

2.1 数据结构

2.2 函数映射表

2.3 定义两个变量保存当前场景和上一个场景

2.4 按下Up按键 跳转到指定场景current_stage的值根据映射表改变

2.5 场景改变后 根据映射表执行相应的函数Handler

1 映射表在串口数据解析中的应用

1.1 数据结构

typedefstruct
{
charCMD[CMDLen];
unsignedchar(*cmd_operate)(char*data);
}Usart_Tab;

1.2 指令、函数映射表

staticconstUsart_TabInstructionList[CMDMax]=
{
{"PWON",PowOn},
{"PWOFF",PowOff},
{"HDCP",HdcpOnOff},
{"/V",QueryKaVersion},
{"EDIDUpgrade",UpdataEDID},
{"Psave",Psave},
{"Precall",Precall},
{"Pclear",Pclear},
};

1.3 串口解析函数实现

unsignedcharDataAnalysis(char*buf)
{
unsignedchari,Result;
char*NEXT=NULL;
for(i=0;i

2 映射表在UI设计中的应用

2.1 数据结构

菜单枚举:

typedefenum
{
stage1=0,
stage2,
stage3,
stage4,
stage5,
stage6,
stage7,
stage8,
stage9,
}SCENE;

数据结构:

typedefstruct{
void(*current_operate)();//当前场景的处理函数
SCENEIndex;//当前场景的标签
SCENEUp;//按下Up键跳转的场景
SCENEDown;//按下Down键跳转的场景
SCENERight;//按下Left键跳转的场景
SCENELeft;//按下Right键跳转的场景
}STAGE_TAB;

2.2 函数映射表

STAGE_TABstage_tab[]={
#.operateIndexUpDownLeftRight
{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 定义两个变量保存当前场景和上一个场景

charcurrent_stage=stage1;
charprev_stage=current_stage;

2.4 按下Up按键 跳转到指定场景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;
}

审核编辑:黄飞

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式开发
    +关注

    关注

    18

    文章

    1028

    浏览量

    47564
  • 函数
    +关注

    关注

    3

    文章

    4329

    浏览量

    62579
  • 串口数据
    +关注

    关注

    0

    文章

    33

    浏览量

    13882
  • 数据结构
    +关注

    关注

    3

    文章

    573

    浏览量

    40124

原文标题:嵌入式开发的一个骚操作!你用过吗?

文章出处:【微信号:knifewheat,微信公众号:小麦大叔】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    嵌入式开发调试经验分享

    嵌入式开发过程中的一点调试经验嵌入式开发最麻烦的现场调试过程或实际运营过程中出现问题很难定位。我实际
    发表于 11-05 08:15

    嵌入式开发流程是怎样的?

    嵌入式开发环境及交叉编译环境,开发完成后,编译得到bin文件,然后Windows下将bin文件通过串口或网络下发到嵌入式板卡,程序
    发表于 11-08 06:24

    基于ARM的嵌入式开发

    基于ARM的嵌入式开发:华清远见/孙天泽基于ARM的嵌入式开发内容有:ARM简介,基于ARM的嵌入式产品,ARM架构,基于ARM的嵌入式开发
    发表于 10-04 08:49 83次下载

    嵌入式开发

    嵌入式开发就是指在嵌入式操作系统下进行开发嵌入式Linux是以Linux为基础的嵌入式作业系统。这里提供了
    发表于 12-20 13:21
    <b class='flag-5'>嵌入式开发</b>

    嵌入式开发好学吗_嵌入式开发职业发展方向是什么

    本文首先来了解一下嵌入式前景及薪资待遇,其次解答了嵌入式开发好学不好学的问题,最后阐述了嵌入式开发必会知识以及嵌入式开发职业的四大发展方向,具体的跟随小编一起来了解一下。
    的头像 发表于 05-18 16:41 9170次阅读

    嵌入式开发的产品有哪些_嵌入式开发的流程

    本文主要阐述了嵌入式开发的产品,其次介绍了嵌入式开发的流程。
    发表于 08-31 15:38 1.1w次阅读

    嵌入式开发(一):嵌入式开发新手入门

    嵌入式开发环境及交叉编译环境,开发完成后,编译得到bin文件,然后Windows下将bin文件通过串口或网络下发到嵌入式板卡,程序
    发表于 10-14 10:58 79次下载
    <b class='flag-5'>嵌入式开发</b>(一):<b class='flag-5'>嵌入式开发</b>新手入门

    嵌入式开发资料免费分享

    选择,如何看待培训等五大方面讲述了嵌入式开发的学习,也有如何去学习嵌入式开发,和配送嵌入式开发的资料全套,上传闯客网技术william hill官网 上,加群获取电子工程师资料合集和
    发表于 10-21 11:07 47次下载
    <b class='flag-5'>嵌入式开发</b>资料免费分享

    嵌入式开发putty串口打印乱码

    目录嵌入式开发putty串口打印乱码编码格式问题波特率设置错误嵌入式开发putty串口打印乱码使用putty连接
    发表于 11-02 18:21 12次下载
    <b class='flag-5'>嵌入式开发</b>putty<b class='flag-5'>串口</b>打印乱码

    嵌入式开发(一):嵌入式开发新手入门(转载后续需要修改补充)

    嵌入式开发环境及交叉编译环境,开发完成后,编译得到bin文件,然后Windows下将bin文件通过串口或网络下发到嵌入式板卡,程序
    发表于 11-02 20:06 17次下载
    <b class='flag-5'>嵌入式开发</b>(一):<b class='flag-5'>嵌入式开发</b>新手入门(转载后续需要修改补充)

    嵌入式开发串口通讯方案

    嵌入式开发,经常会用到串口通讯。面对不同应用场景,需要不同的方案。
    的头像 发表于 05-23 11:48 2411次阅读

    MicroPython 嵌入式开发的兴起

    MicroPython 嵌入式开发的兴起
    的头像 发表于 01-04 11:17 1871次阅读

    Linux系统的嵌入式开发是什么

    嵌入式开发听起来很高大上,但其实它就在我们身边。   嵌入式开发是指将操作系统、应用程序或数据存储嵌入式设备
    的头像 发表于 10-12 15:40 1759次阅读

    C语言映射表串口数据解析的应用

    一、映射表串口数据解析的应用 二、映射表
    发表于 10-27 11:16 390次阅读

    C语言映射表串口数据解析的应用

    C语言映射表串口数据解析的应用
    的头像 发表于 11-13 09:33 480次阅读