NUCLEO-L476RG板开发笔记----串口协议解析方案
NUCLEO-L476RG板子已经到我手里一个星期了,但是现在项目忙的紧,没时间弄它。打算再过半个月到一个月,休假的时候研究一下。看着介绍,觉得这个芯片的性能真的不错,有心在以后的项目中,看看能不能用到。目前暂时没时间研究,就先分享一下板子以外的,关于串口协议解析的一点小技巧吧(只针对定长的协议)。
先定义一下串口协议的格式:
#program pack(1)//一个字节对齐 伪指令
typedefstructRX_STRUCT
{
uint16_trxhead;//协议头
uint8_tlenght;//协议长度
uint8_tcmd; //协议命令
uint8_t data; //协议数据
uint16_tcheck_data;//协议校验
}RX_STRUCT;
#program pack()//取消一个字节对齐
typedef unionRX_DATA
{
RX_STRUCT rx;
rx_data_buf;
}
/****************/
协议格式定义完毕
解析数据的时候,可以这么使用
RX_DATArx_data;
当串口来数据的时候:
memcpy(rx_data.rx_data_buf,serial_data,sizeof(RX_STRUCT));
然后使用结构体,即可解析数据了。
if(rx_data.rx.rxhead == RX_HEAD)
{
switch(rx_data.rx.cmd)
{
...
}
}
一点小技巧,分享给大家。
NUCLEO-L476RG板开发笔记,过一段时间补上。
感谢分享 感谢分享 谢谢分享 学习
页:
[1]