<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 牛人業(yè)話(huà) > 《C與指針》讀書(shū)筆記九

《C與指針》讀書(shū)筆記九

作者: 時(shí)間:2016-08-22 來(lái)源:網(wǎng)絡(luò ) 收藏

  之所以在語(yǔ)言中占據很大分量,是因為有很大的靈活性。以結構體結合確實(shí)為程序的編寫(xiě)提供了一把鋒利無(wú)比的寶劍。在有些資料上介紹結構體是多種數據集合,也就是一個(gè)結構體可以包含若干種不同類(lèi)型的數據。不同類(lèi)型的數據恰可以和客觀(guān)事物的不同屬性結合,用于描述客觀(guān)事物非常高效方便。

本文引用地址:http://dyxdggzs.com/article/201608/295845.htm

  #define RTX_MAX 50

  #define UART_TIME_LIMT 5

  typedef struct UART_TYPE

  {

  unsigned char RX_buf[RTX_MAX];

  unsigned char RX_count;

  unsigned char TX_buf[RTX_MAX];

  unsigned char TX_count;

  unsigned char TX_Len;

  unsigned char flag;

  unsigned char timer; //判斷一幀數據是否結束判斷

  }UART_TYPE;

  enum OM_FLAGE {NO_RE_ONE_FRAM,REC_ONE_FRAM};

  以上是一個(gè)串口管理信息的數據結構,RX_buf[RTX_MAX]、TX_buf[RTX_MAX] 是發(fā)送接收數據緩沖。RX_count 、TX_count接收發(fā)送數據計數器。TX_Len 發(fā)送數據總長(cháng)度。flag數據接收完成標志。timer接收數據起始計數器。

  結構體定義相當于一個(gè)數據集合模板。當需要該數據結構時(shí)只需聲明一個(gè)即可。

  UART_TYPE UART1 = {

  {0,0},

  0,

  {0,0},

  0,

  0,

  NO_REC_ONE_FRAM,

  0

  };

  在編程中管理也非常方便,如果需要為串口設計一個(gè)數據使用,UART_TYPE UART;即可實(shí)現。在程序中使用也非常方便,比如:

  //讀取多個(gè)寄存器

  if(UART1.RX_buf[1]==0x03)

  {

  if(readMuliReg( )==0)

  {

  UART1_Clear_Buf( );

  return;

  }

  else

  {

  goto RETURN_ERR;

  }

  }

  指針與結構體的結合,在解析MODBUS協(xié)議時(shí)非常高效。借用一位同事話(huà)是“對內存格式化”。也就是用結構體指針對MODBUS報文分析。

  //讀多個(gè)寄存器

  typedef struct MODELBUS03CMD

  {

  unsigned char targetADD; //目標地址

  unsigned char CMD; //命令字

  unsigned int regADD; //寄存器地址

  unsigned int regNum; //寄存器數量

  }MODELBUS03CMD;

  這是一個(gè)03命令的報文頭結構。在程序使用方法是這樣

  MODELBUS03CMD *pModelBus03;

  pModelBus03 = UART1.RX_buf;

  REGNumber = pModelBus03->regNum;

  regADD = pModelBus03->regADD;

  使用pModelBus03指針指向接收數據緩沖區,很容易提取了regNum寄存器數量以及regADD寄存器地址。



關(guān)鍵詞: C 指針

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>