上位机通讯 结构体发送和解析

结构体默认按结构体中最长字节比如double,float,int对齐。
#pragma pack(1) // 按1字节进行对齐 即:不进行对齐,所以只需要在includes中加末尾增加 #pragma pack () ,注意协议双方都需要取消字节对齐

#pragma pack(1)

typedef struct{ 

      uint8_t id;

      uint8_t cmd;

      uint8_t length;  

      ....

 }msg_t; 

#pragma pack () // 取消结构体对齐

msg_t  send_msg;

串口发送函数:

USART1_Send((u8*)&send_msg,sizeof(msg_t));

你可能感兴趣的:(单片机,嵌入式硬件,c语言)