你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 1911|回复: 5

[STM32L476] NUCLEO-L476RG板开发笔记----串口协议解析方案

[复制链接]

23

主题

222

回帖

0

蝴蝶豆

高级会员

最后登录
2019-9-27
发表于 2015-11-12 21:41:20 | 显示全部楼层 |阅读模式
NUCLEO-L476RG板子已经到我手里一个星期了,但是现在项目忙的紧,没时间弄它。打算再过半个月到一个月,休假的时候研究一下。看着介绍,觉得这个芯片的性能真的不错,有心在以后的项目中,看看能不能用到。
目前暂时没时间研究,就先分享一下板子以外的,关于串口协议解析的一点小技巧吧(只针对定长的协议)。

先定义一下串口协议的格式:

#program pack(1)//一个字节对齐   伪指令
typedef  struct  RX_STRUCT
{
     uint16_t  rxhead;//协议头
     uint8_t  lenght;  //协议长度
     uint8_t  cmd;    //协议命令
     uint8_t data[4];   //协议数据
     uint16_t  check_data;  //协议校验   
}RX_STRUCT;

#program pack()//取消一个字节对齐

typedef union  RX_DATA
{
    RX_STRUCT    rx;
    rx_data_buf[sizeof(RX_STRUCT)];
}

/****************/
协议格式定义完毕
解析数据的时候,可以这么使用
RX_DATA  rx_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板开发笔记,过一段时间补上。















评分

参与人数 1ST金币 +5 收起 理由
沐紫 + 5

查看全部评分

<
回复

使用道具 举报

47

主题

1210

回帖

5

蝴蝶豆

论坛元老

最后登录
2020-8-13
发表于 2015-11-12 22:10:22 | 显示全部楼层
感谢分享
回复 支持 反对

使用道具 举报

3

主题

144

回帖

0

蝴蝶豆

高级会员

最后登录
2019-11-29
发表于 2015-11-12 22:45:10 | 显示全部楼层
感谢分享
回复 支持 反对

使用道具 举报

1

主题

63

回帖

0

蝴蝶豆

中级会员

最后登录
2016-11-3
发表于 2015-11-12 23:30:34 | 显示全部楼层
谢谢分享
stmcu.org.png
回复 支持 反对

使用道具 举报

1

主题

629

回帖

0

蝴蝶豆

金牌会员

最后登录
2020-3-7
发表于 2015-11-13 08:52:29 | 显示全部楼层
学习                  
回复 支持 反对

使用道具 举报

33

主题

1243

回帖

0

蝴蝶豆

论坛元老

最后登录
2019-3-9
发表于 2015-11-13 08:57:44 | 显示全部楼层
谢谢分享.png
回复 支持 反对

使用道具 举报

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版