一、映射表在串口數據解析中的應用
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;
}
審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
C語言
+關注
關注
183文章
7644瀏覽量
145570 -
串口
+關注
關注
15文章
1618瀏覽量
82809 -
數據結構
+關注
關注
3文章
573瀏覽量
41584
原文標題:C語言映射表在串口數據解析中的應用
文章出處:【微信號:良許Linux,微信公眾號:良許Linux】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
熱點推薦
imx6ul開發板的靜態地址映射表在哪幾個文件中
在驅動編程的時候想了解一下靜態地址映射表在哪幾個文件中,網上查詢了解到在內核文件的arch/arm中但是進去imx6平臺查找出來的文件不確定,在
發表于 01-10 06:00
STM32H7 DMA請求映射表記錄在哪里可以找到呢?
STM32H7 DMA 請求映射表記錄在哪里?我們想在 USART1 RX 和 TX 上使用 DMA。在 STM32H7 的 STm32Cube 中,例如
發表于 01-04 08:04
labview串口數據解析
本文主要對labview串口數據解析進行了分析。首先需要調用VISAConfigureSerialPort完成串口參數的設置,包括串口資源分
發表于 01-15 15:21
?6w次閱讀
51單片機(STC15W408AS)映射printf函數 串口收發實現
前提:實現串口收發數據/************************************************* *函數名稱:char putchar(char c
發表于 11-20 17:51
?11次下載
C語言映射表在串口數據解析中的應用
評論