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

    文章

    979

    浏览量

    46959
  • 函数
    +关注

    关注

    3

    文章

    3882

    浏览量

    61310
  • 串口数据
    +关注

    关注

    0

    文章

    30

    浏览量

    13795
  • 数据结构
    +关注

    关注

    3

    文章

    564

    浏览量

    39900

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

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

收藏 人收藏

    评论

    相关推荐

    嵌入式开发入门之旅

    嵌入式开发之初体验1.  生活嵌入式系统了解嵌入式系统的基本概念,列举生活嵌入式
    发表于 07-09 16:57

    嵌入式开发入门之旅

    ;nbsp; 119159395(Mary) 课程内容:一、嵌入式开发之初体验1.  生活嵌入式系统了解嵌入式系统的基本概念,列举生活
    发表于 07-10 15:59

    嵌入式开发与非嵌入式开发的区别

    通过初步的学习,了解到嵌入式已有的硬件上移植操作系统,操作系统之上做上层应用开发操作系统之下做底层
    发表于 10-27 06:26

    嵌入式开发是什么意思

    嵌入式开发就是指在嵌入式操作系统下进行开发,包括系统化设计指导下的硬件和软件以及综合研发。除暂且分离硬件的EDA研发以外,侧重的就是一定
    发表于 10-28 08:35

    嵌入式开发流程

    嵌入式开发流程一般是PC机的Windows系统下安装Ubuntu虚拟机,搭建嵌入式开发环境及交叉编译环境,开发完成后,编译得到bin文件,然后
    发表于 11-05 06:06

    嵌入式开发调试经验分享

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

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

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

    嵌入式开发的优缺点是什么?

    一.嵌入式开发概述:嵌入式已有硬件上移植操作系统,解决软硬件耦合度高导致的问题。(打个比方:软件的实现是为了调用open()函数,那么嵌入式开发就是
    发表于 11-08 07:42

    嵌入式开发就业方向的问题

    近几年来随着物联网的快速发展,嵌入式开发技术我们的生活随处可见,目前嵌入式开发工程师市场上的需求量大,薪资也是水涨船高。上海尚观科技今
    发表于 11-08 07:58

    对ARM嵌入式开发的概述

    是对ARM嵌入式开发的概述。一、ARM是什么?ARM是全球领先的半导体知识产权 (IP) 提供商。全世界超过95%的智能手机和平板电脑都采用ARM架构。二、ARM的商业模式ARM只负责设计芯...
    发表于 12-14 08:34

    RUST嵌入式开发的应用是什么

    Rust是一种编程语言,它使用户能够构建可靠、高效的软件,尤其是用于嵌入式开发的软件。它的特点是:高性能:Rust具有惊人的速度和高内存利用率。可靠性:在编译过程可以消除内存错误。生产效率:优秀
    发表于 12-24 08:34

    嵌入式开发自定义协议的解析与组包相关案例分享

    1、嵌入式开发自定义协议的解析与组包  嵌入式产品开发
    发表于 10-27 17:01

    嵌入式开发串口通讯方案

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

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

    一、映射表串口数据解析中的应用 二、映射表在UI设计中的应用
    发表于 10-27 11:16 155次阅读

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

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