stm32移植lwip时遇到的问题。

来源:互联网 发布:openstreetmap数据下载 编辑:程序博客网 时间:2024/05/20 14:28

在这几天的调试过程中,出现了将APP层的数据传递到lwip的sendto()函数时,出现了传递后相关参数出现错位现象。后经细查,是因为定义结构体时,没有字节对齐,

  struct stCmdHeader          //ÃüÁîÍ·¸ñʽ
    {
          U16 SYNFLAG;                   //ͬ²½Í·£¬0XF0 0XA5
          U32 Len;                       //ÃüÁ¶È×Ö½Ú£¬º¬Í·     
          BYTE FromDevID;                //ÃüÁîÀ´Ô´
          BYTE CmdCode;                   //ÃüÁîÂë
//          U8 FromDevID;                //ÃüÁîÀ´Ô´
//          U8 CmdCode;                   //ÃüÁîÂë
          U16 CMDCRC;                    //֡УÑé    
    };

后改成:

 #pragma pack(1)
    struct stCmdHeader          //ÃüÁîÍ·¸ñʽ
    {
          U16 SYNFLAG;                   //ͬ²½Í·£¬0XF0 0XA5
          U32 Len;                       //ÃüÁ¶È×Ö½Ú£¬º¬Í·     
          BYTE FromDevID;                //ÃüÁîÀ´Ô´
          BYTE CmdCode;                   //ÃüÁîÂë
//          U8 FromDevID;                //ÃüÁîÀ´Ô´
//          U8 CmdCode;                   //ÃüÁîÂë
          U16 CMDCRC;                    //֡УÑé    
    };
  #pragma pack()

问题解决。

0 0
原创粉丝点击