OpenEdv-开源电子网

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

求助 串口接收数据问题

[复制链接]

4

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
96
金钱
96
注册时间
2014-7-15
在线时间
49 小时
发表于 2016-4-22 17:19:03 | 显示全部楼层 |阅读模式
10金钱
求助大神,我想通过串口接收一串数据,缓存至数组后统一处理,但是接收数据长度不确定,那我要怎么确定刚好接收完最后一个字节就处理数组呢?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
96
金钱
96
注册时间
2014-7-15
在线时间
49 小时
 楼主| 发表于 2016-4-22 23:00:56 | 显示全部楼层
yklstudent 发表于 2016-4-22 17:39
用一个定时器,每次接收到数据就重新开启定时器工作,如果定时器超时进中断就代表接收完成

谢谢回复,请问你的意思是,接受到一次数据,定时器就重新计数,如果定时器计数超出设定的时间就认为是数据接受完了,对吗?
回复

使用道具 举报

28

主题

303

帖子

0

精华

高级会员

Rank: 4

积分
541
金钱
541
注册时间
2014-8-14
在线时间
67 小时
发表于 2016-4-23 10:00:15 | 显示全部楼层
mark,标记一下,围观大神回答
自己写一个通信协议 比如 开头  0x7d 0x7b   结尾再来一个结尾的数据  另外要注意  写一个判别  防止数据中有你结尾的符号
这个世界上还有很多很多的人,但你不认识他们,他们也不属于你的世界。这个世界上还有很多好吃的好玩的好看的东西,可真正属于你的世界其实是很小的,只是你去过的地方吃过的东西和见过的落日,还有会在乎你死活的朋友。”——《龙族》
回复

使用道具 举报

20

主题

72

帖子

0

精华

初级会员

Rank: 2

积分
182
金钱
182
注册时间
2015-11-11
在线时间
22 小时
发表于 2016-4-23 10:55:58 | 显示全部楼层
字符串的接收形式,以回车换行作为接收结束,也就0xD 0xA
回复

使用道具 举报

30

主题

1170

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1993
金钱
1993
注册时间
2016-2-16
在线时间
527 小时
发表于 2016-4-23 11:09:58 | 显示全部楼层
看你们有没有固定的通讯协议,就是以什么开始,以什么结束这些,如果没的话,你还是开一个定时,在一定时间内没继续收到数据,就当他结束了
回复

使用道具 举报

20

主题

91

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
494
金钱
494
注册时间
2015-7-3
在线时间
55 小时
发表于 2016-4-28 13:40:13 | 显示全部楼层
最好能做一个协议,不管数据多长,在数据后面都挂上结束符,类似于101协议中的0x16,这样就可以判断数据是不是已经传输完毕
回复

使用道具 举报

1

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
102
金钱
102
注册时间
2016-4-28
在线时间
42 小时
发表于 2016-4-28 14:59:27 | 显示全部楼层
感觉还是像原子哥的例程一样  设置一个头  尾文件
0x0d 0x0a 判断比较合理
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-17 16:04

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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