RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

嵌入式開發(fā):映射表在串口數(shù)據(jù)解析中的應(yīng)用

小麥大叔 ? 來源:物聯(lián)網(wǎng)IoT技術(shù) ? 2023-11-28 10:30 ? 次閱讀

目錄

1 映射表在串口數(shù)據(jù)解析中的應(yīng)用

1.1 數(shù)據(jù)結(jié)構(gòu)

1.2 指令、函數(shù)映射表

1.3 串口解析函數(shù)實(shí)現(xiàn)

2 映射表在UI設(shè)計(jì)中的應(yīng)用

2.1 數(shù)據(jù)結(jié)構(gòu)

2.2 函數(shù)映射表

2.3 定義兩個(gè)變量保存當(dāng)前場景和上一個(gè)場景

2.4 按下Up按鍵 跳轉(zhuǎn)到指定場景current_stage的值根據(jù)映射表改變

2.5 場景改變后 根據(jù)映射表執(zhí)行相應(yīng)的函數(shù)Handler

1 映射表在串口數(shù)據(jù)解析中的應(yīng)用

1.1 數(shù)據(jù)結(jié)構(gòu)

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

1.2 指令、函數(shù)映射表

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

1.3 串口解析函數(shù)實(shí)現(xiàn)

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

2 映射表在UI設(shè)計(jì)中的應(yīng)用

2.1 數(shù)據(jù)結(jié)構(gòu)

菜單枚舉:

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

數(shù)據(jù)結(jié)構(gòu):

typedefstruct{
void(*current_operate)();//當(dāng)前場景的處理函數(shù)
SCENEIndex;//當(dāng)前場景的標(biāo)簽
SCENEUp;//按下Up鍵跳轉(zhuǎn)的場景
SCENEDown;//按下Down鍵跳轉(zhuǎn)的場景
SCENERight;//按下Left鍵跳轉(zhuǎn)的場景
SCENELeft;//按下Right鍵跳轉(zhuǎn)的場景
}STAGE_TAB;

2.2 函數(shù)映射表

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 定義兩個(gè)變量保存當(dāng)前場景和上一個(gè)場景

charcurrent_stage=stage1;
charprev_stage=current_stage;

2.4 按下Up按鍵 跳轉(zhuǎn)到指定場景current_stage的值根據(jù)映射表改變

current_stage =stage_tab[current_stage].Up;

2.5 場景改變后 根據(jù)映射表執(zhí)行相應(yīng)的函數(shù)Handler

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

審核編輯:黃飛

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴

原文標(biāo)題:嵌入式開發(fā)的一個(gè)騷操作!你用過嗎?

文章出處:【微信號:knifewheat,微信公眾號:小麥大叔】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    嵌入式開發(fā)調(diào)試經(jīng)驗(yàn)分享

    嵌入式開發(fā)過程中的一點(diǎn)調(diào)試經(jīng)驗(yàn)嵌入式開發(fā)最麻煩的現(xiàn)場調(diào)試過程或?qū)嶋H運(yùn)營過程中出現(xiàn)問題很難定位。我實(shí)際
    發(fā)表于 11-05 08:15

    嵌入式開發(fā)流程是怎樣的?

    嵌入式開發(fā)環(huán)境及交叉編譯環(huán)境,開發(fā)完成后,編譯得到bin文件,然后Windows下將bin文件通過串口或網(wǎng)絡(luò)下發(fā)到嵌入式板卡,程序
    發(fā)表于 11-08 06:24

    基于ARM的嵌入式開發(fā)

    基于ARM的嵌入式開發(fā):華清遠(yuǎn)見/孫天澤基于ARM的嵌入式開發(fā)內(nèi)容有:ARM簡介,基于ARM的嵌入式產(chǎn)品,ARM架構(gòu),基于ARM的嵌入式開發(fā)
    發(fā)表于 10-04 08:49 ?83次下載

    嵌入式開發(fā)

    嵌入式開發(fā)就是指在嵌入式操作系統(tǒng)下進(jìn)行開發(fā),嵌入式Linux是以Linux為基礎(chǔ)的嵌入式作業(yè)系統(tǒng)。這里提供了
    發(fā)表于 12-20 13:21
    <b class='flag-5'>嵌入式開發(fā)</b>

    嵌入式開發(fā)好學(xué)嗎_嵌入式開發(fā)職業(yè)發(fā)展方向是什么

    本文首先來了解一下嵌入式前景及薪資待遇,其次解答了嵌入式開發(fā)好學(xué)不好學(xué)的問題,最后闡述了嵌入式開發(fā)必會(huì)知識以及嵌入式開發(fā)職業(yè)的四大發(fā)展方向,具體的跟隨小編一起來了解一下。
    的頭像 發(fā)表于 05-18 16:41 ?9165次閱讀

    嵌入式開發(fā)的產(chǎn)品有哪些_嵌入式開發(fā)的流程

    本文主要闡述了嵌入式開發(fā)的產(chǎn)品,其次介紹了嵌入式開發(fā)的流程。
    發(fā)表于 08-31 15:38 ?1.1w次閱讀

    嵌入式開發(fā)(一):嵌入式開發(fā)新手入門

    嵌入式開發(fā)環(huán)境及交叉編譯環(huán)境,開發(fā)完成后,編譯得到bin文件,然后Windows下將bin文件通過串口或網(wǎng)絡(luò)下發(fā)到嵌入式板卡,程序
    發(fā)表于 10-14 10:58 ?79次下載
    <b class='flag-5'>嵌入式開發(fā)</b>(一):<b class='flag-5'>嵌入式開發(fā)</b>新手入門

    嵌入式開發(fā)資料免費(fèi)分享

    選擇,如何看待培訓(xùn)等五大方面講述了嵌入式開發(fā)的學(xué)習(xí),也有如何去學(xué)習(xí)嵌入式開發(fā),和配送嵌入式開發(fā)的資料全套,上傳闖客網(wǎng)技術(shù)論壇上,加群獲取電子工程師資料合集和
    發(fā)表于 10-21 11:07 ?47次下載
    <b class='flag-5'>嵌入式開發(fā)</b>資料免費(fèi)分享

    嵌入式開發(fā)putty串口打印亂碼

    目錄嵌入式開發(fā)putty串口打印亂碼編碼格式問題波特率設(shè)置錯(cuò)誤嵌入式開發(fā)putty串口打印亂碼使用putty連接
    發(fā)表于 11-02 18:21 ?12次下載
    <b class='flag-5'>嵌入式開發(fā)</b>putty<b class='flag-5'>串口</b>打印亂碼

    嵌入式開發(fā)(一):嵌入式開發(fā)新手入門(轉(zhuǎn)載后續(xù)需要修改補(bǔ)充)

    嵌入式開發(fā)環(huán)境及交叉編譯環(huán)境,開發(fā)完成后,編譯得到bin文件,然后Windows下將bin文件通過串口或網(wǎng)絡(luò)下發(fā)到嵌入式板卡,程序
    發(fā)表于 11-02 20:06 ?17次下載
    <b class='flag-5'>嵌入式開發(fā)</b>(一):<b class='flag-5'>嵌入式開發(fā)</b>新手入門(轉(zhuǎn)載后續(xù)需要修改補(bǔ)充)

    嵌入式開發(fā)串口通訊方案

    嵌入式開發(fā),經(jīng)常會(huì)用到串口通訊。面對不同應(yīng)用場景,需要不同的方案。
    的頭像 發(fā)表于 05-23 11:48 ?2402次閱讀

    MicroPython 嵌入式開發(fā)的興起

    MicroPython 嵌入式開發(fā)的興起
    的頭像 發(fā)表于 01-04 11:17 ?1870次閱讀

    Linux系統(tǒng)的嵌入式開發(fā)是什么

    嵌入式開發(fā)聽起來很高大上,但其實(shí)它就在我們身邊。   嵌入式開發(fā)是指將操作系統(tǒng)、應(yīng)用程序或數(shù)據(jù)存儲(chǔ)嵌入式設(shè)備
    的頭像 發(fā)表于 10-12 15:40 ?1752次閱讀

    C語言映射表串口數(shù)據(jù)解析的應(yīng)用

    一、映射表串口數(shù)據(jù)解析的應(yīng)用 二、映射表
    發(fā)表于 10-27 11:16 ?383次閱讀

    C語言映射表串口數(shù)據(jù)解析的應(yīng)用

    C語言映射表串口數(shù)據(jù)解析的應(yīng)用
    的頭像 發(fā)表于 11-13 09:33 ?477次閱讀
    RM新时代网站-首页