OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 10128|回复: 14

小白求教,串口通信协议(帧头 地址 命令 数据长度 数据 校验 帧尾)解析 例程。有没有大神指点指点

[复制链接]

2

主题

11

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2019-3-18
在线时间
5 小时
发表于 2019-3-18 20:31:01 | 显示全部楼层 |阅读模式
2金钱
如题:小白求教,串口通信协议(帧头 地址 命令 数据长度 数据 校验 帧尾)解析 例程。有没有大神指点指点 QQ图片20190318203119.png

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

11

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2019-3-18
在线时间
5 小时
 楼主| 发表于 2019-3-18 20:40:11 | 显示全部楼层
回复

使用道具 举报

51

主题

2166

帖子

2

精华

论坛元老

Rank: 8Rank: 8

积分
10653
金钱
10653
注册时间
2017-4-14
在线时间
2780 小时
发表于 2019-3-18 20:40:19 | 显示全部楼层
数据长度固定 打包个结构体 收到的数据直接拷贝到结构体  校验啥的对应就可以了 不固定就按照协议解析嘛
回复

使用道具 举报

2

主题

11

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2019-3-18
在线时间
5 小时
 楼主| 发表于 2019-3-18 20:49:14 | 显示全部楼层
nashui_sx 发表于 2019-3-18 20:40
数据长度固定 打包个结构体 收到的数据直接拷贝到结构体  校验啥的对应就可以了 不固定就按照协议解析嘛

大神有没有例程可以参考一下的,我用状态位判断,只能实现一头一尾的判断,中间的着实伤脑筋,刚接触编程。
回复

使用道具 举报

51

主题

2166

帖子

2

精华

论坛元老

Rank: 8Rank: 8

积分
10653
金钱
10653
注册时间
2017-4-14
在线时间
2780 小时
发表于 2019-3-18 21:00:10 | 显示全部楼层
Xuhaibo 发表于 2019-3-18 20:49
大神有没有例程可以参考一下的,我用状态位判断,只能实现一头一尾的判断,中间的着实伤脑筋,刚接触编程 ...

你这协议简单的没法再简单了,没啥例子
定义一个大一点的数组省的数据段太长溢出  
你这结束符给原子的例子都一样  直接用就能收到每一帧数据,收到后校验下看看对不对,不对舍弃,对下一步
然后根据命令switch 解析数据段

为了提高可靠性也可以用串口空闲中断 分割帧数据
回复

使用道具 举报

2

主题

11

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2019-3-18
在线时间
5 小时
 楼主| 发表于 2019-3-19 09:39:58 | 显示全部楼层
有没有人正好有例程可以参考一下
回复

使用道具 举报

15

主题

866

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7375
金钱
7375
注册时间
2016-11-30
在线时间
633 小时
发表于 2019-3-19 17:11:42 | 显示全部楼层
回复

使用道具 举报

51

主题

2166

帖子

2

精华

论坛元老

Rank: 8Rank: 8

积分
10653
金钱
10653
注册时间
2017-4-14
在线时间
2780 小时
发表于 2019-3-20 14:10:55 | 显示全部楼层
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2019-5-20
在线时间
11 小时
发表于 2019-7-12 11:05:07 | 显示全部楼层
楼主,请问你搞定这个串口通信协议的问题了吗,我现在和你当初一模一样的情况,不知道怎么下手
回复

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2019-10-29
在线时间
8 小时
发表于 2020-3-17 16:16:01 | 显示全部楼层
串口DMA+循环队列+状态机解析,搞定,可以解不定长度,排除干扰数据,效率还行
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2020-8-11
在线时间
3 小时
发表于 2020-8-18 10:22:16 | 显示全部楼层
littlestar 发表于 2019-7-12 11:05
楼主,请问你搞定这个串口通信协议的问题了吗,我现在和你当初一模一样的情况,不知道怎么下手

我也遇到了这个问题,怎么解决啊
回复

使用道具 举报

50

主题

1805

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6662
金钱
6662
注册时间
2016-5-29
在线时间
910 小时
发表于 2020-8-18 10:53:27 | 显示全部楼层
这协议 ,很自然呀.
回复

使用道具 举报

9

主题

218

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1395
金钱
1395
注册时间
2020-5-12
在线时间
387 小时
发表于 2020-8-18 10:59:03 | 显示全部楼层
串口数据使用空闲中断也好,还是定时器超时也好,先把一帧数据用循环队列保存下来。然后协议处理的话,入参就是每一帧数据,先判断长度,然后一个限制一个if,遇到不对就return
回复

使用道具 举报

2

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
185
金钱
185
注册时间
2020-9-2
在线时间
37 小时
发表于 2021-7-30 10:30:47 | 显示全部楼层
标记一下,遇到和楼主一样的问题了。希望有例程学习下
回复

使用道具 举报

0

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
122
金钱
122
注册时间
2011-12-26
在线时间
20 小时
发表于 2022-2-22 09:55:17 | 显示全部楼层
多点练习一下就懂了,方法好多种的
我要发达
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-28 06:23

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表