简单的结构体与指针学习应用,用来保存和调用分析串口Buffer接收到的数据

STEP1::定义用来接收串口数据的buffer

u8 USART_RX_BUF[USB_USART_REC_LEN]; 	//接收缓冲,最大USART_REC_LEN个字节.

STEP2::定义一个结构体

typedef __packed struct _Stm32Packet 
{
	u32		count;         //结构总长度
	u8		kind;	       //message kind
	u16		index;	       //message index
	u32		timeout;
	u32 	        stateValue;
	u8 		version[4];
	u8 		reserve[20];
        u16	      checksum;      //校验位
} SStm32Packet;

STEP3::然后定义一个SStm32Pack类型的结构体P,

 SStm32Packet* p;
 p = (SStm32Packet*)USART_RX_BUF;//串口接收到的数据存放在USART_RX_BUF中,按照SStmPack 里面的数据成员格式存放

 此时,p指向串口USART_RXBUF的第一个元素,具体就是USART_RXBUF[0]的地址。

STEP4::那么现在,如果你想知道刚刚从串口接收到的数据中,是那种信息,直接判断kind就可以了。

p->kind;

同理,想知道校验位

p->checksum;


你可能感兴趣的:(简单的结构体与指针学习应用,用来保存和调用分析串口Buffer接收到的数据)