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

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

3天内不再提示

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

dyquk4xk2p3d 来源:物联网IoT威廉希尔官方网站 2023-11-13 09:33 次阅读

来源:物联网IoT威廉希尔官方网站

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

1、数据结构

typedef struct 
{
    char CMD[CMDLen];
    unsigned char (*cmd_operate)(char *data);
}Usart_Tab;

2、指令、函数映射表

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

3、串口解析函数实现

unsigned char DataAnalysis(char *buf)
{
  unsigned char i,Result;
  char *NEXT=NULL;
  for(i=0;i

二、映射表在UI设计中的应用

1、数据结构

菜单枚举:

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

数据结构:

typedef struct {
  void (*current_operate)(); //当前场景的处理函数
  SCENE Index;               //当前场景的标签
  SCENE Up;                  //按下Up键跳转的场景
  SCENE Down;                //按下Down键跳转的场景
  SCENE Right;               //按下Left键跳转的场景
  SCENE Left;                //按下Right键跳转的场景
}STAGE_TAB;

2、函数映射表

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},
};

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

char current_stage=stage1;
char prev_stage=current_stage;

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

current_stage =stage_tab[current_stage].Up;

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

if(current_stage!=prev_stage)
{
  stage_tab[current_stage].current_operate();
  prev_stage=current_stage;
}

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

    关注

    180

    文章

    7604

    浏览量

    136486
  • 串口
    +关注

    关注

    14

    文章

    1549

    浏览量

    76332
  • 数据结构
    +关注

    关注

    3

    文章

    573

    浏览量

    40112

原文标题:C语言映射表在串口数据解析中的应用

文章出处:【微信号:良许Linux,微信公众号:良许Linux】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    串口数据解析

    串口发送频率:10HZ三桢数据代表一个信息,三桢数据依次发送,如何保证每一个信息是由对应的三桢数据解析出来的。下面是假设
    发表于 03-31 13:23

    labview串口数据解析

    我用labview进行串口数据解析串口来一串数据例如:2A 3C 1B 23这样十六进制
    发表于 09-04 20:51

    请问有STM32F4系列的DMA1各通道和数据流的映射表

    各位大神,求助STM32F4系列的DMA1各通道和数据流的映射表
    发表于 04-16 14:42

    解析GPS模块串口发送的数据

    / NMEA0183-C 的库我把它迁移到我的码云里了,方便大家下载迁移到码云的NMEA0183-CKEIL C51实现了GPS
    发表于 07-16 06:45

    imx6ul开发板的静态地址映射表在哪几个文件

    驱动编程的时候想了解一下静态地址映射表在哪几个文件,网上查询了解到在内核文件的arch/arm但是进去imx6平台查找出来的文件不确定,
    发表于 01-10 06:00

    介绍一种简单的数据解析方法

    C语言简单数据解析嵌入式开发通过串口等传输
    发表于 02-28 06:15

    STM32H7 DMA请求映射表记录在哪里可以找到呢?

    STM32H7 DMA 请求映射表记录在哪里?我们想在 USART1 RX 和 TX 上使用 DMA。 STM32H7 的 STm32Cube ,例如
    发表于 01-04 08:04

    C语言深度解析

    C语言深度解析,本资料来源于网络,对C语言的学习有很大的帮助,有着较为深刻的解析,可能会对读者有
    发表于 09-28 07:00

    最详尽的——解析串口通信数据

    最详尽的——解析串口通信数据
    发表于 12-05 14:56 2次下载

    labview串口数据解析

    本文主要对labview串口数据解析进行了分析。首先需要调用VISAConfigureSerialPort完成串口参数的设置,包括串口资源分
    发表于 01-15 15:21 5.8w次阅读
    labview<b class='flag-5'>串口</b><b class='flag-5'>数据</b><b class='flag-5'>解析</b>

    51单片机(STC15W408AS)映射printf函数 串口收发实现

    前提:实现串口收发数据/************************************************* *函数名称:char putchar(char c
    发表于 11-20 17:51 8次下载
    51单片机(STC15W408AS)<b class='flag-5'>映射</b>printf函数 <b class='flag-5'>串口</b>收发实现

    C语言简单数据解析

    C语言简单数据解析嵌入式开发通过串口等传输
    发表于 01-13 15:17 8次下载
    <b class='flag-5'>C</b><b class='flag-5'>语言</b>简单<b class='flag-5'>数据</b><b class='flag-5'>解析</b>

    LabVIEW映射表是什么?

    了解映射表的概念之前,我们需要先明确映射的概念,映射是一个数学名词,它指的是集合与集合之间的一种对应关系:集合A的每一个元素都在集合B
    的头像 发表于 07-21 10:14 5209次阅读
    LabVIEW<b class='flag-5'>中</b>的<b class='flag-5'>映射表</b>是什么?

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

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

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

    1 映射表串口数据解析的应用 1.1 数据
    的头像 发表于 11-28 10:30 444次阅读